図書館
からの使用法の抜粋
http://blogs.msdn.com/ivo_manolov/archive/2008/12/17/9230331.aspx
3 番目の一般的な方法は、コマンド ライン パラメーターから厳密に型指定されたコマンドを作成することです。これは、コマンドラインが次のような場合によく見られます。
some-exe COMMAND parameters-to-the-command
この場合の解析はもう少し複雑です。
- Command 抽象基本クラスから派生し、予期される Execute メソッドを実装する、サポートされているすべてのコマンドに対して 1 つのクラスを作成します。
CommandLineParser.ParseCommand にコマンド ライン引数と共に予期されるコマンドを渡します。このメソッドは、Execute() で指定できる厳密に型指定された Command インスタンスを返します。
// 例 #3: // 次のコマンド ラインを解析するサンプル: // Test.exe run /runId=10 /verbose // この特定のケースでは、コマンド ラインに実際のコマンド (「実行」) があります。 、これを効果的にデシリアライズして実行したい。
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」パラメーターはインスタンスRunCommandクラスになり、「walk」はWalkCommandクラスになります)。最新バージョンでできますか?さらに、codeplex からダウンロードしたものは、上記の方法では機能せず、スラッシュのない最初のパラメーターを受け入れません。したがって、リフレクションを使用する場合は、通常のパラメーターとしてコマンド名を渡してから、クラス名を決定し、リフレクションを介してインスタンス化してから、ParseArguments を介して他の引数を解析する必要があります。