【问题标题】:Get invalid parameters from commandline parser从命令行解析器获取无效参数
【发布时间】:2016-02-05 16:20:55
【问题描述】:

我使用命令行解析器 nuget。

var options = new Options();
bool isInputValid = CommandLine.Parser.Default.ParseArguments(args, options);

如何获取无效参数?

【问题讨论】:

  • 您使用的是哪个版本的命令行解析器 nuget?
  • 最新! ......

标签: c# console-application command-line-parser


【解决方案1】:

1.9.71 中,我没有看到任何可以在解析后从参数中获取无效标记的选项。但是,如果您升级到 -pre release 版本,即

<package id="CommandLineParser" version="2.0.275-beta" targetFramework="net45" />

这个版本可以灵活地处理解析结果。所以你可以很容易地找到无效的令牌,如下所示:

 var result = CommandLine.Parser.Default.ParseArguments<Options>(args);

 result.MapResult(
        options =>
        {
            // Do something with optios
            return 0;
        },
        errors =>
        {
            var invalidTokens = errors.Where(x => x is TokenError).ToList();
            if(invalidTokens != null)
            {
                invalidTokens.ForEach(token => Console.WriteLine(((TokenError)token).Token));
            }

            return 1;
        });

【讨论】:

  • 在有人为不同的版本代码而疯狂之前,这有效 => foreach (var error in errors.OfType()) { Console.WriteLine("The parameter: '{0}' s不正确!", error.NameInfo); } 返回 1;
猜你喜欢
  • 2011-11-15
  • 2013-05-13
  • 2013-03-21
  • 2012-07-09
  • 2014-01-03
相关资源
最近更新 更多