NDesk.Options: как правильно прописать необходимые параметры? [дубликат]

На этот вопрос уже есть ответ здесь:

Я пытаюсь использовать класс OptionSet следующим образом:

  string resultsFileName = null;
  bool isHelp = false;

  var p = new OptionSet() {
    { "r=|resultsFile=",  "The file with the results", v => { resultsFileName = v; } }
    { "h|help", "Show this help", v => { isHelp = (v != null); } },
  };

  try
  {
    p.Parse(args);
  }
  catch (OptionException e)
  {
    Console.WriteLine("Invalid arguments: " + e.Message);
    ShowHelp(p);
    return;
  }

Таким образом, ожидается, что параметр resultsFile будет обязательным (согласно документации: http://www.ndesk.org/doc/ndesk-options/NDesk.Options/OptionValueType.html ). Однако когда я запускаю программу как есть (т.е. без аргументов командной строки) исключение не создается. Пожалуйста, помогите.

Обновление: В отладчике похоже, что когда не указаны параметры командной строки, метод private void AssertValid (int index) никогда не будет доступен для выбросить новое исключение OptionException .

22
задан BreakPhreak 28 October 2010 в 09:23
поделиться