commandlineparser / commandlineparser/commandline

unable to set default value using Uri

未关闭
#708 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
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

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。