このhttps://github.com/commandlineparser/commandline を使用して、解析された入力パラメーターをアプリケーションに渡し始めました。
ここでの問題は、渡された入力パラメータが必須ではないことです。つまり、指定せずにアプリケーションを起動できます。
これまでのところ、コマンドラインオプションをそのように定義しました
public class CommandLineOptions
{
[Option(longName: "client-id", Required = false, HelpText = "Id of the client")]
public string ClientId { get; set; }
[Option(longName: "pw", Required = false, HelpText = "pw.")]
public string Password{ get; set; }
}
そして私のメインでは、私はそれらをこのように解析します
Access access= Parser.Default.ParseArguments<CommandLineOptions>(args)
.MapResult(parsedFunc: (CommandLineOptions opts) => new Access(opts.ClientId, opts.Password),
notParsedFunc: (IEnumerable<Error> a) => new Access());
parsedfunc:
指定された場合と指定されていない場合に使用したいnotParsedFunc:
。
しかし、これは常に and をトリガーし、parsedFunc
両方のパラメーターの値がであるnull
ため、内部メソッドは失敗しますか?
また、オプションを不要に変更しようとしましたが、これらのパラメーターが指定されていないというエラーがコンソール ウィンドウにスローされますが、正しいメソッドがトリガーされます。