如何在 2 个参数之间使用具有 OR 关系的选项
Posted
技术标签:
【中文标题】如何在 2 个参数之间使用具有 OR 关系的选项【英文标题】:How to have Options with OR relations between 2 arguments 【发布时间】:2021-10-24 12:21:07 【问题描述】:我有一个非常基本的问题,下面是我的 Options 课程。我需要在 j 和 f 标志之间建立 OR 关系,即任何人都应该被强制通过。
[Option('j', "jsonfile", Required = true, HelpText = "Path to json file")]
public string JsonFilePath get; set;
[Option('f', "jsonfolder", Required = true, HelpText = "Path to json directory")]
public string JsonFolder get; set;
[Option('t', "targetpath", Required = true, HelpText = "Target folder")]
public string TargetFolder get; set;
我需要的是,如果 j 没有在参数中传递,那么 f 应该是强制性的,或者如果 f 不是传入参数,那么 j 应该是强制通过的。我怎样才能做到这一点?
【问题讨论】:
那是System.CommandLine吗? 它的 CommandLineParser github.com/commandlineparser/commandline。但如果你知道如何在 System.CommandLine 中实现,我可以试试。 我不知道解决方案,但我已经为您的问题添加了适当的标签。 【参考方案1】:看起来 Group 为您解决了问题。
[Option('j', "jsonfile", Group= "json", HelpText = "Path to json file")]
public string JsonFilePath get; set;
[Option('f', "jsonfolder", Group= "json", HelpText = "Path to json directory")]
public string JsonFolder get; set;
[Option('t', "targetpath", Required = true, HelpText = "Target folder")]
public string TargetFolder get; set;
【讨论】:
以上是关于如何在 2 个参数之间使用具有 OR 关系的选项的主要内容,如果未能解决你的问题,请参考以下文章