Sto utilizzando NDesk.Options per analizzare gli argomenti della riga di comando per un programma di riga di comando C#. Funziona bene, tranne che voglio che il mio programma esca senza successo e mostri l'output della guida, se l'utente include argomenti che non mi aspettavo.NDesk.Options - rileva argomenti non validi
sto parsing opzioni nel seguente modo:
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;
Con questo codice, se uso un argomento in modo improprio, come ad esempio specificando --filter
senza =myfilter
dopo che è poi NDesk.Options genera un OptionException e tutto andrà bene. Tuttavia, mi aspettavo anche che fosse lanciata una OptionException se avessi passato un argomento che non corrisponde alla mia lista, come ad esempio --someOtherArg
. Ma questo non succede. Il parser lo ignora e continua a viaggiare su camion.
C'è un modo per rilevare argomenti inaspettati con NDesk.Options?
Questo è il pezzo chiave che mi mancava. Grazie! – RationalGeek