Средство синтаксического анализа командной строки с взаимоисключающими обязательными параметрами

Я начал использовать библиотеку анализатора командной строкидля инструмента, который будет иметь как графический интерфейс, так и запуск из командной строки. Запуск графического интерфейса осуществляется с помощью параметра командной строки.

Поэтому я хотел бы иметь необходимые параметры на случай, если программа выполняется в режиме командной строки. По сути, я бы хотел, чтобы вариант 1 и вариант 2 требовались, если параметр «Gui» не установлен.

Я попытался объединить атрибуты MutuallyExclusiveSet и Required, как показано ниже, но это не сработало, как я думал. Я неправильно понял концепцию «MutuallyExclusiveSet» или просто неправильно ее использовал? Или это что-то, что библиотека еще не поддерживает?

public class CommandLineOptions : CommandLineOptionsBase
{
    [Option(null, "gui", Required = false, HelpText = "Launch the GUI", MutuallyExclusiveSet = "Gui")]
    public bool Gui { get; set; }

    [Option(null, "opt1", HelpText = "Option 1", MutuallyExclusiveSet = "CommandLine", Required = true)]
    public string Option1 { get; set; }

    [Option(null, "opt2", HelpText = "Option 2", MutuallyExclusiveSet = "CommandLine", Required = true)]
    public string Option2 { get; set; }
}

23
задан abatishchev 27 May 2012 в 15:21
поделиться