Difference between revisions of "Creating Commands"
From ReflexCLI
(→Customising Command Names) |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 13: | Line 13: | ||
{ | { | ||
[ConsoleCommand] | [ConsoleCommand] | ||
− | private static string Echo(string | + | private static string Echo(string inString) |
{ | { | ||
− | return | + | return inString; |
} | } | ||
Line 36: | Line 36: | ||
#<code>CommandTest.TestCommandLibrary.BooleanProperty</code> | #<code>CommandTest.TestCommandLibrary.BooleanProperty</code> | ||
− | ==Customising Command | + | ==Customising Command Prefixes== |
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: | 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: | ||
Line 54: | Line 54: | ||
# <code>TestCommand.BooleanProperty</code> | # <code>TestCommand.BooleanProperty</code> | ||
+ | ==Customising Command Names== | ||
You can also customize the name of the commands by adding the optional parameter to <code>[ConsoleCommand]</code>. For example | You can also customize the name of the commands by adding the optional parameter to <code>[ConsoleCommand]</code>. For example | ||
Line 62: | Line 63: | ||
which will change this command to be <code>TestCommand.Int</code>. | which will change this command to be <code>TestCommand.Int</code>. | ||
+ | |||
+ | ==Limitations== | ||
+ | There are some limitations on what members can be turned into commands. See [[Command Limitations]] for details. |
Latest revision as of 06:06, 3 September 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 inString) { return inString; } [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 Prefixes
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("TestCommand")] class TestCommandLibrary { // etc.
This will change the prefix of the commands to TestCommand
. and so the commands become:
-
TestCommand.Echo
-
TestCommand.IntegerField
-
TestCommand.BooleanProperty
Customising Command Names
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 TestCommand.Int
.
Limitations
There are some limitations on what members can be turned into commands. See Command Limitations for details.