0

この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ため、内部メソッドは失敗しますか?

また、オプションを不要に変更しようとしましたが、これらのパラメーターが指定されていないというエラーがコンソール ウィンドウにスローされますが、正しいメソッドがトリガーされます。

4

1 に答える 1