Ich verwende NDesk.Options, um Befehlszeilenargumente für ein C# -Kommandozeilenprogramm zu analysieren. Es funktioniert gut, außer dass ich möchte, dass mein Programm nicht erfolgreich beendet wird, und die Hilfeausgabe anzeigen, wenn der Benutzer Argumente enthält, die ich nicht erwartet habe.NDesk.Options - ungültige Argumente finden
Ich bin Parsen Optionen thusly:
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;
Mit diesem Code, wenn ich falsch ein Argument verwenden, wie --filter
ohne =myfilter
Angabe, nachdem es dann NDesk.Options eine OptionException werfen und alles wird gut. Ich habe jedoch auch erwartet, dass eine OptionException ausgelöst wird, wenn ich ein Argument übergebe, das nicht mit meiner Liste übereinstimmt, z. B. --someOtherArg
. Aber das passiert nicht. Der Parser ignoriert das einfach und fährt weiter.
Gibt es eine Möglichkeit, unerwartete Argumente mit NDesk.Options zu erkennen?
Das ist das Schlüsselstück, das ich vermisste. Vielen Dank! – RationalGeek