从命令行解析器获取无效参数
Get invalid parameters from commandline parser
我使用命令行解析器 nuget。
var options = new Options();
bool isInputValid = CommandLine.Parser.Default.ParseArguments(args, options);
如何获取无效的参数?
在 1.9.71
中,我没有看到任何可以在解析后从参数中获取无效标记的选项。但是如果你升级到 -pre 发布版本即
<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;
});
我使用命令行解析器 nuget。
var options = new Options();
bool isInputValid = CommandLine.Parser.Default.ParseArguments(args, options);
如何获取无效的参数?
在 1.9.71
中,我没有看到任何可以在解析后从参数中获取无效标记的选项。但是如果你升级到 -pre 发布版本即
<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;
});