图书馆在
用法摘自
http://blogs.msdn.com/ivo_manolov/archive/2008/12/17/9230331.aspx
第三种常用方法是从命令行参数形成强类型命令。这在命令行如下所示的情况下很常见:
some-exe COMMAND parameters-to-the-command
在这种情况下,解析有点复杂:
- 为每个受支持的命令创建一个类,该类派生自 Command 抽象基类并实现预期的 Execute 方法。
将预期的命令与命令行参数一起传递给 CommandLineParser.ParseCommand——该方法将返回一个可以是 Execute()-d 的强类型命令实例。
// 示例 #3: // 解析以下命令行的示例: // Test.exe run /runId=10 /verbose // 在这个特殊情况下,我们在命令行上有一个实际的命令(“run”) ,我们想要有效地反序列化和执行。
public class RunCommand : Command { bool? Verbose { get; set; } int? RunId { get; set; } public override void Execute() { // Implement your "run" execution logic here. } } Command c = new RunCommand(); CommandLineParser.ParseArguments(c, args); c.Execute();
==============================
如果我们在解析参数之前实例化特定的类,我不明白,命令行参数“run”的意义是什么,它是第一个。我认为这个想法是基于命令行参数实例化和执行命令/类(“run”参数变成实例 RunCommand 类,“walk”变成 WalkCommand 类等等)。可以用最新版本完成吗?此外,我从 codeplex 下载的内容不能按照上述方式工作,并且不接受没有斜杠的第一个参数。因此,如果使用反射,我必须将命令名称作为通常的参数传递,然后执行多步骤 - 确定类名称,通过反射实例化,然后才通过 ParseArguments 解析其他参数。