mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 14:25:52 +00:00
- code refactoring
- made more and more easily extensible: * commands automatically loaded from plugins dlls * declarative and automatic command parameter parsing * common code moved to base classes - other fixes svn path=/trunk/; revision=33344
This commit is contained in:
parent
e3407fdd9c
commit
d7b2077ed8
42 changed files with 2263 additions and 1689 deletions
52
irc/TechBot/TechBot.Library/Factory/CommandBuilder.cs
Normal file
52
irc/TechBot/TechBot.Library/Factory/CommandBuilder.cs
Normal file
|
@ -0,0 +1,52 @@
|
|||
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);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue