internal Command GetCommand ( string name )
{
Type cmdType;
if (commands.TryGetValue( name, out cmdType )) {
return (Command)Activator.CreateInstance( cmdType, this );
}
throw new InvalidOperationException(string.Format("Unknown command '{0}'.", name));
}