Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El análisis y la invocación son dos pasos independientes, por lo que cada uno de ellos tiene su propia configuración:
-
ParserConfiguration es una clase que proporciona propiedades para configurar el análisis. Es un argumento opcional para cada
Parsemétodo, como Command.Parse y CommandLineParser.Parse. - InvocationConfiguration es una clase que proporciona propiedades para configurar la invocación. Es un argumento opcional de los ParseResult.Invoke métodos y ParseResult.InvokeAsync .
Se exponen mediante las ParseResult.Configuration propiedades y ParseResult.InvocationConfiguration . Cuando no se proporcionan, se usan las configuraciones predeterminadas.
ParserConfiguration
EnablePosixBundling
La agrupación de opciones de un solo carácter está habilitada de forma predeterminada, pero puede deshabilitarla estableciendo la propiedad ParserConfiguration.EnablePosixBundling en false.
ResponseFileTokenReplacer
Los archivos de respuesta están habilitados de forma predeterminada, pero puede deshabilitarlos estableciendo la propiedad ResponseFileTokenReplacer en null. También puede proporcionar una implementación personalizada para personalizar cómo se procesan los archivos de respuesta.
El archivo de respuesta puede contener otros nombres de archivo de respuesta, por lo que el análisis podría incluir abrir otros archivos. La biblioteca espera que todos los archivos de respuesta se hayan generado y almacenado por agentes de confianza.
InvocationConfiguration
Salida y error estándar
InvocationConfiguration hace que las pruebas, así como muchos escenarios de extensibilidad, sean más fáciles que usar System.Console. Expone dos TextWriter propiedades: Output y Error. Puede establecer estas propiedades en cualquier instancia TextWriter, como StringWriter, que puede usar para capturar la salida en pruebas.
Defina un comando simple que escriba en la salida estándar:
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}"
);
});
Ahora, use InvocationConfiguration para capturar la salida:
StringWriter output = new();
rootCommand.Parse("-h").Invoke(new() { Output = output });
Debug.Assert(output.ToString().Contains("Configuration sample"));
ProcessTerminationTimeout
El tiempo de espera de finalización del proceso se puede configurar a través de la ProcessTerminationTimeout propiedad . El valor predeterminado es de 2 segundos.
HabilitarManejadorDeExcepcionesPredeterminado
De forma predeterminada, se detectan y notifican al usuario todas las excepciones no controladas durante la invocación de un comando. Puede deshabilitar este comportamiento configurando la propiedad EnableDefaultExceptionHandler a false. Esto resulta útil cuando desea controlar excepciones de forma personalizada, como registrarlas o proporcionar una experiencia de usuario diferente.
Clases derivadas
InvocationConfiguration no está sellado, por lo que puede derivar de él para agregar propiedades o métodos personalizados. Esto resulta útil cuando desea proporcionar opciones de configuración adicionales específicas de la aplicación.