using System; using System.Reflection; using System.Collections.Generic; using System.Text; namespace TechBot.Library { public class CommandBuilder { private Type m_CommandType; private string m_CommandName; private string m_CommandHelp; private string m_CommandDesc; public CommandBuilder(Type commandType) { m_CommandType = commandType; CommandAttribute commandAttribute = (CommandAttribute) Attribute.GetCustomAttribute(commandType, typeof(CommandAttribute)); m_CommandName = commandAttribute.Name; m_CommandHelp = commandAttribute.Help; m_CommandDesc = commandAttribute.Description; } public string Name { get { return m_CommandName; } } public string Help { get { return m_CommandHelp; } } public string Description { get { return m_CommandDesc; } } public Type Type { get { return m_CommandType; } } public Command CreateCommand() { return (Command)Type.Assembly.CreateInstance(Type.FullName, true); } } }