如何访问命令行解析 <T> 的值 属性?
How can you access the Value property of a CommandLine Parsed<T>?
如何访问已解析命令行的值 属性?
正在尝试使用 CommandLineParser
Parsing 上的 wiki 部分说 T 的实例可以通过 Value
属性 ...
如果解析成功,您将获得一个派生的 Parsed 类型,该类型通过其值公开 T 的一个实例 属性。
但我在 parserResult
上看不到任何 Value
属性,只有 Tag
...
ParserResult<Options> parserResult = Parser.Default.ParseArguments<Options>(args);
WriteLine(parserResult.Tag);
而且我知道我在调试时遗漏了一些东西,我可以看到 Value
属性 ???
要获取已解析的对象(或解析失败时的错误),您可以这样做:
ParserResult<Options> parserResult = Parser.Default.ParseArguments<Options>(args);
if (parserResult.Tag == ParserResultType.Parsed) {
var options = ((Parsed<Options>)parserResult).Value;
}
else {
var errors = ((NotParsed<Options>)parserResult).Errors;
}
这是一个有问题的设计,但总的来说你不应该这样做,预期的用法更像是:
Parser.Default.ParseArguments<Options>(args)
.WithParsed(options => ...)
.WithNotParsed(errors => ...)IEnumerable<Error>
如何访问已解析命令行的值 属性?
正在尝试使用 CommandLineParser
Parsing 上的 wiki 部分说 T 的实例可以通过 Value
属性 ...
如果解析成功,您将获得一个派生的 Parsed 类型,该类型通过其值公开 T 的一个实例 属性。
但我在 parserResult
上看不到任何 Value
属性,只有 Tag
...
ParserResult<Options> parserResult = Parser.Default.ParseArguments<Options>(args);
WriteLine(parserResult.Tag);
而且我知道我在调试时遗漏了一些东西,我可以看到 Value
属性 ???
要获取已解析的对象(或解析失败时的错误),您可以这样做:
ParserResult<Options> parserResult = Parser.Default.ParseArguments<Options>(args);
if (parserResult.Tag == ParserResultType.Parsed) {
var options = ((Parsed<Options>)parserResult).Value;
}
else {
var errors = ((NotParsed<Options>)parserResult).Errors;
}
这是一个有问题的设计,但总的来说你不应该这样做,预期的用法更像是:
Parser.Default.ParseArguments<Options>(args)
.WithParsed(options => ...)
.WithNotParsed(errors => ...)IEnumerable<Error>