使用CommandLineParserLibrary仅在其他选项存在时允许选项的简单方法

时间:2019-03-25 14:02:03

标签: c# command-line-parser

我正在尝试使用此库来实现逻辑: 我有动词write,还有这个方案的选项:

write (-md [-p|-s] [-t]) | (-txt [-v])-其中“ |” -表示或(使用-md时仅接受-p OR -s(但不是必需的,如“ []”所示))

有没有简单的方法来实现?还是应该将其拆分为单独的动词?

1 个答案:

答案 0 :(得分:0)

很抱歉回答自己的问题,但这对其他人(source)会有所帮助:

您可以在声明SetName时使用use OptionAttribute参数:

internal class Options
{
    [Option("username", SetName = "auth")]
    public string Username { get; set; }

    [Option("password", SetName = "auth")]
    public string Password { get; set; }

    [Option("guestaccess", SetName = "guest")]
    public bool GuestAccess { get; set; }
}

现在usernamepassword可以一起使用,但是guestaccess单独存在于“来宾”集中,因此不能与其他集中的选项一起使用。