Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Parseren en aanroepen zijn twee afzonderlijke stappen, dus elk van deze stappen heeft een eigen configuratie:
-
ParserConfiguration is een klasse die eigenschappen biedt voor het configureren van de parsering. Het is een optioneel argument voor elke
Parsemethode, zoals Command.Parse en CommandLineParser.Parse. - InvocationConfiguration is een klasse die eigenschappen biedt voor het configureren van de aanroep. Het is een optioneel argument van de ParseResult.Invoke en ParseResult.InvokeAsync methoden.
Ze worden weergegeven door de ParseResult.Configuration en ParseResult.InvocationConfiguration eigenschappen. Wanneer ze niet worden opgegeven, worden de standaardconfiguraties gebruikt.
ParserConfiguration
EnablePosixBundling
Het bundelen van opties met één teken is standaard ingeschakeld, maar u kunt deze uitschakelen door de ParserConfiguration.EnablePosixBundling eigenschap in te stellen op false.
Antwoordbestandtokenvervanger
Antwoordbestanden zijn standaard ingeschakeld, maar u kunt ze uitschakelen door de ResponseFileTokenReplacer eigenschap in te stellen op null. U kunt ook een aangepaste implementatie bieden om aan te passen hoe antwoordbestanden worden verwerkt.
Het antwoordbestand kan andere namen van het antwoordbestand bevatten, dus parseren kan het openen van andere bestanden omvatten. De bibliotheek verwacht dat alle antwoordbestanden zijn gegenereerd en opgeslagen door betrouwbare agents.
InvocationConfiguration
Standaarduitvoer en -fout
InvocationConfiguration maakt testen, evenals veel uitbreidbaarheidsscenario's, eenvoudiger dan het gebruik ervan System.Console. Er worden twee TextWriter eigenschappen weergegeven: Output en Error. U kunt deze eigenschappen instellen op elk TextWriter exemplaar, zoals een StringWriter, dat u kunt gebruiken om uitvoer vast te leggen voor testen.
Definieer een eenvoudige opdracht die naar standaarduitvoer schrijft:
Option<FileInfo?> fileOption = new("--file")
{
Description = "An option whose argument is parsed as a FileInfo"
};
RootCommand rootCommand = new("Configuration sample")
{
fileOption
};
rootCommand.SetAction((parseResult) =>
{
FileInfo? fileOptionValue = parseResult.GetValue(fileOption);
parseResult.InvocationConfiguration.Output.WriteLine(
$"File option value: {fileOptionValue?.FullName}"
);
});
InvocationConfiguration Gebruik nu om de uitvoer vast te leggen:
StringWriter output = new();
rootCommand.Parse("-h").Invoke(new() { Output = output });
Debug.Assert(output.ToString().Contains("Configuration sample"));
Procesbeëindigingstijdslimiet
Time-out voor procesbeëindiging kan worden geconfigureerd via de ProcessTerminationTimeout eigenschap. De standaardwaarde is 2 seconden.
EnableDefaultExceptionHandler
Standaard worden alle onverwerkte uitzonderingen die tijdens het aanroepen van een commando worden gegenereerd, opgevangen en gerapporteerd aan de gebruiker. U kunt dit gedrag uitschakelen door de EnableDefaultExceptionHandler eigenschap in te stellen op false. Dit is handig als u uitzonderingen op een aangepaste manier wilt afhandelen, zoals het vastleggen van uitzonderingen of het bieden van een andere gebruikerservaring.
Afgeleide klassen
InvocationConfiguration is niet verzegeld, zodat u ervan kan afleiden om extra eigenschappen of methoden toe te voegen. Dit is handig als u aanvullende configuratieopties wilt opgeven die specifiek zijn voor uw toepassing.