Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
System.CommandLine är för närvarande i förhandsversion. Den här dokumentationen gäller version 2.0 beta 7.
Viss information gäller förhandsversionsprodukt som kan ändras avsevärt innan den släpps. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, med avseende på den information som tillhandahålls här.
Parsning och anrop är två separata steg, så var och en av dem har sin egen konfiguration:
-
ParserConfiguration är en klass som tillhandahåller egenskaper för att konfigurera parsningen. Det är ett valfritt argument för varje
Parsemetod, till exempel Command.Parse och CommandLineParser.Parse. - InvocationConfiguration är en klass som tillhandahåller egenskaper för att konfigurera anropet. Det är ett valfritt argument för ParseResult.Invoke metoderna och ParseResult.InvokeAsync .
De exponeras av ParseResult.Configuration egenskaperna och ParseResult.InvocationConfiguration . När de inte anges används standardkonfigurationerna.
ParserConfiguration
EnablePosixBundling
Paketering av alternativ med ett tecken är aktiverat som standard, men du kan inaktivera det genom att ange ParserConfiguration.EnablePosixBundling egenskapen till false.
ResponseFileTokenReplacer
Svarsfiler är aktiverade som standard, men du kan inaktivera dem genom att ange ResponseFileTokenReplacer egenskapen till null. Du kan också tillhandahålla en anpassad implementering för att anpassa hur svarsfiler bearbetas.
Svarsfilen kan innehålla andra svarsfilnamn, och därför kan parsning inkludera att öppna andra filer. Biblioteket förväntar sig att alla svarsfiler har genererats och lagrats av betrodda agenter.
InvocationConfiguration
Standardutdata och -fel
InvocationConfiguration gör testning, liksom många utökningsscenarier, enklare än att använda System.Console. Den exponerar två TextWriter egenskaper: Output och Error. Du kan ange dessa egenskaper till valfri TextWriter instans, till exempel en StringWriter, som du kan använda för att samla in utdata för testning.
Definiera ett enkelt kommando som skriver till standardutdata:
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 Använd nu för att samla in utdata:
StringWriter output = new();
rootCommand.Parse("-h").Invoke(new() { Output = output });
Debug.Assert(output.ToString().Contains("Configuration sample"));
Processavslutningstidsgräns
Timeout för processavslut kan konfigureras via egenskapen ProcessTerminationTimeout . Standardvärdet är 2 sekunder.
EnableDefaultExceptionHandler
Som standardinställning fångas alla ohanterade undantag som uppstår under kommandots anrop och rapporteras till användaren. Du kan inaktivera det här beteendet genom att ange EnableDefaultExceptionHandler egenskapen till false. Detta är användbart när du vill hantera undantag på ett anpassat sätt, till exempel genom att logga dem eller tillhandahålla en annan användarupplevelse.
Härledda klasser
InvocationConfiguration är inte förseglad, så du kan härleda från den för att lägga till anpassade egenskaper eller metoder. Detta är användbart när du vill ange ytterligare konfigurationsalternativ som är specifika för ditt program.