Difference between revisions of "Creating Commands"
From ReflexCLI
Line 1: | Line 1: | ||
[[Category:Commands| ]] | [[Category:Commands| ]] | ||
+ | Creating Commands: | ||
+ | You can create commands from any c# methods, fields or properties by adding the <code>[ConsoleCommand]</code> attribute. | ||
+ | |||
+ | ==Basic Example== | ||
+ | |||
+ | <pre> | ||
+ | using ReflexCLI.Attributes; | ||
+ | |||
+ | namespace CommandTest | ||
+ | { | ||
+ | class TestCommandLibrary | ||
+ | { | ||
+ | [ConsoleCommand] | ||
+ | private static string Echo(string in) | ||
+ | { | ||
+ | return in; | ||
+ | } | ||
+ | |||
+ | [ConsoleCommand] | ||
+ | protected static int IntegerField = 32; | ||
+ | |||
+ | [ConsoleCommand] | ||
+ | public static bool BooleanProperty | ||
+ | { | ||
+ | get { return IntegerField > 0; } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | This will create the following commands: | ||
+ | |||
+ | #<code>CommandTest.TestCommandLibrary.Echo</code> | ||
+ | #<code>CommandTest.TestCommandLibrary.IntegerField</code> | ||
+ | #<code>CommandTest.TestCommandLibrary.BooleanProperty</code> | ||
+ | |||
+ | ==Customising Command Names== | ||
+ | By default, the commands are given fully-qualified names with namespaces etc., which can get pretty verbose. This can be fixed by using a [CommandConsoleClassCustomizer] attribute on the class: | ||
+ | |||
+ | <pre> | ||
+ | namespace CommandTest | ||
+ | { | ||
+ | [ConsoleCommandClassCustomizer("TestCommands")] | ||
+ | class TestCommandLibrary | ||
+ | { | ||
+ | // etc. | ||
+ | </pre> | ||
+ | |||
+ | This will change the prefix of the commands to <code>TestCommand</code>. and so the commands become: | ||
+ | |||
+ | # <code>TestCommands.Echo</code> | ||
+ | # <code>TestCommands.IntegerField</code> | ||
+ | # <code>TestCommands.BooleanProperty</code> | ||
+ | |||
+ | You can also customize the name of the commands by adding the optional parameter to <code>[ConsoleCommand]</code>. For example | ||
+ | |||
+ | <pre> | ||
+ | [ConsoleCommand("Int")] | ||
+ | protected static int IntegerField = 32; | ||
+ | </pre> | ||
+ | |||
+ | which will change this command to be <code>TestCommands.Int</code>. |
Revision as of 16:09, 30 August 2017
Creating Commands:
You can create commands from any c# methods, fields or properties by adding the [ConsoleCommand]
attribute.
Basic Example
using ReflexCLI.Attributes; namespace CommandTest { class TestCommandLibrary { [ConsoleCommand] private static string Echo(string in) { return in; } [ConsoleCommand] protected static int IntegerField = 32; [ConsoleCommand] public static bool BooleanProperty { get { return IntegerField > 0; } } } }
This will create the following commands:
CommandTest.TestCommandLibrary.Echo
CommandTest.TestCommandLibrary.IntegerField
CommandTest.TestCommandLibrary.BooleanProperty
Customising Command Names
By default, the commands are given fully-qualified names with namespaces etc., which can get pretty verbose. This can be fixed by using a [CommandConsoleClassCustomizer] attribute on the class:
namespace CommandTest { [ConsoleCommandClassCustomizer("TestCommands")] class TestCommandLibrary { // etc.
This will change the prefix of the commands to TestCommand
. and so the commands become:
-
TestCommands.Echo
-
TestCommands.IntegerField
-
TestCommands.BooleanProperty
You can also customize the name of the commands by adding the optional parameter to [ConsoleCommand]
. For example
[ConsoleCommand("Int")] protected static int IntegerField = 32;
which will change this command to be TestCommands.Int
.