Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
L’analyse et l’appel sont deux étapes distinctes. Chacun d’eux a donc sa propre configuration :
-
ParserConfiguration est une classe qui fournit des propriétés pour configurer l’analyse. Il s’agit d’un argument facultatif pour chaque
Parseméthode, comme Command.Parse et CommandLineParser.Parse. - InvocationConfiguration est une classe qui fournit des propriétés pour configurer l’appel. Il s’agit d’un argument facultatif des méthodes et ParseResult.Invoke des ParseResult.InvokeAsync méthodes.
Elles sont exposées par les propriétés et ParseResult.Configuration les ParseResult.InvocationConfiguration propriétés. Lorsqu’elles ne sont pas fournies, les configurations par défaut sont utilisées.
ParserConfiguration
EnablePosixBundling
Le regroupement d’options à caractère unique est activé par défaut, mais vous pouvez le désactiver en définissant la propriété ParserConfiguration.EnablePosixBundling à false.
ResponseFileTokenReplacer
Les fichiers de réponse sont activés par défaut, mais vous pouvez les désactiver en définissant la propriété ResponseFileTokenReplacer à null. Vous pouvez également fournir une implémentation personnalisée pour personnaliser le traitement des fichiers de réponse.
Le fichier réponse peut contenir d’autres noms de fichiers de réponse. Par conséquent, l’analyse peut inclure l’ouverture d’autres fichiers. La bibliothèque s’attend à ce que tous les fichiers de réponse aient été générés et stockés par des agents fiables.
InvocationConfiguration
Sortie et erreur standard
InvocationConfiguration rend les tests, ainsi que de nombreux scénarios d’extensibilité, plus faciles que l’utilisation System.Console. Il expose deux TextWriter propriétés : Output et Error. Vous pouvez définir ces propriétés sur n’importe quelle TextWriter instance, telle qu’un StringWriter, que vous pouvez utiliser pour capturer la sortie pour les tests.
Définissez une commande simple qui écrit dans une sortie standard :
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}"
);
});
À présent, utilisez cette option InvocationConfiguration pour capturer la sortie :
StringWriter output = new();
rootCommand.Parse("-h").Invoke(new() { Output = output });
Debug.Assert(output.ToString().Contains("Configuration sample"));
DélaiD'arrêtDeProcessus
Le délai d’expiration du processus peut être configuré via la ProcessTerminationTimeout propriété. La valeur par défaut est de 2 secondes.
EnableDefaultExceptionHandler
Par défaut, toutes les exceptions non gérées levées pendant l’appel d’une commande sont interceptées et signalées à l’utilisateur. Vous pouvez désactiver ce comportement en définissant la EnableDefaultExceptionHandler propriété sur false. Cela est utile lorsque vous souhaitez gérer des exceptions d’une manière personnalisée, comme les journaliser ou fournir une expérience utilisateur différente.
Classes dérivées
InvocationConfiguration n’est pas scellé. Vous pouvez donc en dériver pour ajouter des propriétés ou des méthodes personnalisées. Cela est utile lorsque vous souhaitez fournir des options de configuration supplémentaires spécifiques à votre application.
Voir aussi
- vue d’ensemble System.CommandLine