Korzystam z NDesk.Options do analizowania argumentów linii poleceń dla programu wiersza poleceń C#. Działa dobrze, z wyjątkiem tego, że chcę, aby mój program kończył się bez powodzenia, i wyświetlać wynik pomocy, jeśli użytkownik zawiera argumenty, których się nie spodziewałem.NDesk.Options - wykryj niepoprawne argumenty
ja analizowania opcji wygląda następująco:
var options = new OptionSet {
{ "r|reset", "do a reset", r => _reset = r != null },
{ "f|filter=", "add a filter", f => _filter = f },
{ "h|?|help", "show this message and exit", v => _showHelp = v != null },
};
try
{
options.Parse(args);
}
catch (OptionException)
{
_showHelp = true;
return false;
}
return true;
Z tego kodu, jeśli mogę użyć argumentu nieprawidłowo, takie jak określenie --filter
bez =myfilter
po czym NDesk.Options wygeneruje OptionException i wszystko będzie w porządku. Jednak oczekiwałem również, że wyjątek OptionException zostanie zgłoszony, jeśli przekażę argument, który nie pasuje do mojej listy, na przykład --someOtherArg
. Ale tak się nie dzieje. Parser po prostu ignoruje to i kontynuuje transport.
Czy istnieje sposób wykrywania nieoczekiwanych argumentów z NDesk.Options?
To kluczowy element, którego mi brakowało. Dzięki! – RationalGeek