Ich versuche, die OptionSet
Klasse in der folgenden Art und Weise zu nutzen:NDesk.Options: Wie werden die erforderlichen Parameter korrekt registriert?
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;
}
So resultsFile
Option erforderlich sein soll (nach Dokumentation: http://www.ndesk.org/doc/ndesk-options/NDesk.Options/OptionValueType.html). Wenn ich das Programm jedoch unverändert ausführe (d. H. Ohne Befehlszeilenargumente), wird die Ausnahme nicht ausgelöst. Bitte helfen.
Update: Es sieht in Debugger wie wenn keine Befehlszeilenoptionen zur Verfügung gestellt werden, wird die private void AssertValid (int index)
Methode nie throw new OptionException
erreicht werden.
Dank für die schnelle Antwort! (ein wenig bedauerlich, dass diese Funktionalität nicht unterstützt wird, da dies zur Robustheit der Validierung der Befehlszeilenargumente beitragen würde). – BreakPhreak