commandlineparser / commandlineparser/commandline
unable to set default value using Uri
- 主要语言
- C#
- 星标
- 4.8k
- 派生
- 478
- PR 合并指标
- 30 天内没有已合并 PR
描述
trying to be able to run an app like this:
consoleApp.exe
or
consoleApp.exe http://someOtherUri.invalid:1234
i can get the default value to work using a string:
class Options{
[Value(0,
Default = "http://someUri.invalid:1234"
)]
public string OptionalUri { get;set;}
}
but not using a Uri as its type.
class Options{
[Value(0,
Default = "http://someUri.invalid:1234"
)]
public Uri OptionalUri { get;set;}
}
static void Main(string[] args)
{
CommandLine.Parser.Default.ParseArguments(args)
.WithParsed(Run)
.WithNotParsed(HandleParseError);
}
static void Run(Options options)
{
//Uri u = options.OptionalUri;
Uri u = new Uri(options.OptionalUri); // possible parseerrors, should've been handled in commandlineparser
}
then i get
Error setting value to option '': Check if Option or Value attribute values
are set properly for the given type.
贡献指南
这个仓库没有索引到贡献指南
调研方向
使用所示的 Options 类、Uri 属性、Value 属性和 Parser.Default.ParseArguments 调用重现该问题。跟踪 parser 如何应用默认字符串并处理 Uri 输入;当默认 URI 成功赋值,且无效的 Uri 输入产生 parser 错误而不是要求在 Run 中手动构造时,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- csharp
- 领域
- cli
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 45/100