Mik*_*hin 5 command-line-parser
有一个由gsscoder编写的C#的CommandLine解析器库(它有自己的SO标签,我正在添加它).它以getopt
样式解析命令行选项,即:
myprogram --foo --bar=baz abc def ghi
Run Code Online (Sandbox Code Playgroud)
它还可以具有所谓的"未绑定"参数,即不受选项约束的独立位置参数; 在以上这些的例子是abc
,def
,和ghi
.不幸的是,文档只提到"解析器有办法处理这些",但没有给出一个例子.而且我的C#并不那么尖锐,所以我被扫描的源代码量吓到了.
有人可以举一个解析后如何访问这些未绑定参数的例子吗?
使用ValueList[Attribute]
(参见CodePlex上的文档):
选项未捕获的每个值都可以包含在从System.Collections.Generic.IList派生的字符串集合中.
显然,此属性没有名称,并且直接从System.Attribute派生. 它是目前唯一的例外,但并不排除将来它会有相似之处.
示例(来自上面链接的页面):
class Options
{
// ...
[ValueList(typeof(List<string>), MaximumElements = 3)]
public IList<string> Items { get; set; };
// ...
}
Run Code Online (Sandbox Code Playgroud)
在哪里 ValueList
- 必须分配给类型的属性
IList<string>
.- 构造函数必须接受从
IList<string>
as 派生的类型List<string>
.- 如果
MaximumElements
属性设置为大于0的数字,则超出限制时解析器将失败.- 设置
MaximumElements
为0表示您不接受与选项取消关联的值.MaximumElements
(-1)的默认隐式设置允许无限数量的值.
归档时间: |
|
查看次数: |
806 次 |
最近记录: |