Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A análise e a invocação são duas etapas separadas, portanto, cada uma delas tem sua própria configuração:
-
ParserConfiguration é uma classe que fornece propriedades para configurar a análise. É um argumento opcional para todos os
Parsemétodos, como Command.Parse e CommandLineParser.Parse. - InvocationConfiguration é uma classe que fornece propriedades para configurar a invocação. É um argumento opcional dos métodos e ParseResult.Invoke dos ParseResult.InvokeAsync métodos.
Eles são expostos pelas propriedades e ParseResult.Configuration pelas ParseResult.InvocationConfiguration propriedades. Quando elas não são fornecidas, as configurações padrão são usadas.
ParserConfiguration
EnablePosixBundling
O agrupamento de opções de caractere único é habilitado por padrão, mas você pode desabilitá-lo definindo a ParserConfiguration.EnablePosixBundling propriedade como false.
ResponseFileTokenReplacer
Os arquivos de resposta são habilitados por padrão, mas você pode desabilitá-los definindo a ResponseFileTokenReplacer propriedade como null. Você também pode fornecer uma implementação personalizada para personalizar como os arquivos de resposta são processados.
O arquivo de resposta pode conter outros nomes de arquivo de resposta, portanto, a análise pode incluir a abertura de outros arquivos. A biblioteca espera que todos os arquivos de resposta sejam gerados e armazenados por agentes confiáveis.
InvocationConfiguration
Saída e erro padrão
InvocationConfiguration torna o teste, bem como muitos cenários de extensibilidade, mais fácil do que usar System.Console. Ele expõe duas TextWriter propriedades: Output e Error. Você pode definir essas propriedades para qualquer TextWriter instância, como uma StringWriter, que você pode usar para capturar a saída para teste.
Defina um comando simples que grava na saída padrão:
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}"
);
});
Agora, use InvocationConfiguration para capturar a saída:
StringWriter output = new();
rootCommand.Parse("-h").Invoke(new() { Output = output });
Debug.Assert(output.ToString().Contains("Configuration sample"));
ProcessTerminationTimeout
O tempo limite de término do processo pode ser configurado por meio da ProcessTerminationTimeout propriedade. O valor padrão é 2 segundos.
EnableDefaultExceptionHandler
Por padrão, todas as exceções sem tratamento geradas durante a invocação de um comando são capturadas e relatadas ao usuário. Você pode desabilitar esse comportamento definindo a EnableDefaultExceptionHandler propriedade como false. Isso é útil quando você quer lidar com exceções de maneira personalizada, como fazer o registro no log ou proporcionar uma experiência de usuário diferente.
Classes derivadas
InvocationConfiguration não está lacrado, portanto, você pode derivar dele para adicionar propriedades ou métodos personalizados. Isso é útil quando você deseja fornecer opções de configuração adicionais específicas ao seu aplicativo.
Consulte também
- visão geral System.CommandLine