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.
Importante
System.CommandLine
actualmente está en versión preliminar y esta documentación es para la versión 2.0 beta 5.
Cierta información se relaciona con el producto de versión preliminar que puede modificarse sustancialmente antes de su lanzamiento. Microsoft no ofrece ninguna garantía, expresa o implícita, con respecto a la información proporcionada aquí.
System.CommandLine.CommandLineConfiguration
es una clase que proporciona propiedades para configurar el analizador. Es un argumento opcional para cada Parse
método, como System.CommandLine.Command.Parse
o System.CommandLine.Parsing.CommandLineParser.Parse
. Cuando no se proporciona, se usa la configuración predeterminada.
Cada System.CommandLine.ParseResult
instancia tiene una System.CommandLine.ParseResult.Configuration
propiedad que devuelve la configuración utilizada para el análisis.
Salida y error estándar
System.CommandLine.CommandLineConfiguration
hace que las pruebas, así como muchos escenarios de extensibilidad, sean más fáciles de usar System.Console
. Expone dos TextWriter
propiedades: Output
y Error
. Se pueden establecer en cualquier TextWriter
instancia, como , StringWriter
que se puede usar para capturar la salida de las pruebas.
Vamos a definir un comando sencillo que escribe 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.Configuration.Output.WriteLine($"File option value: {fileOptionValue?.FullName}");
});
Ahora, vamos a usar CommandLineConfiguration
para capturar la salida:
StringWriter output = new();
CommandLineConfiguration configuration = new(rootCommand)
{
Output = output,
Error = TextWriter.Null
};
configuration.Parse("-h").Invoke();
Debug.Assert(output.ToString().Contains("Configuration sample"));
EnablePosixBundling
La agrupación de opciones de un solo carácter está habilitada de forma predeterminada, pero puede deshabilitarla estableciendo la System.CommandLine.CommandLineConfiguration.EnablePosixBundling
propiedad false
en .
ProcessTerminationTimeout
El tiempo de espera de finalización del proceso se puede configurar a través de la System.CommandLine.CommandLineConfiguration.ProcessTerminationTimeout
propiedad . El valor predeterminado es de 2 segundos.
ResponseFileTokenReplacer
Los archivos de respuesta están habilitados de forma predeterminada, pero puede deshabilitarlos estableciendo la System.CommandLine.CommandLineConfiguration.ResponseFileTokenReplacer
propiedad null
en . También puede proporcionar una implementación personalizada para personalizar cómo se procesan los archivos de respuesta.
EnableDefaultExceptionHandler
De forma predeterminada, se detectan y notifican al usuario todas las excepciones no controladas durante la invocación de un comando. Este comportamiento se puede deshabilitar estableciendo la System.CommandLine.CommandLineConfiguration.EnableDefaultExceptionHandler
propiedad false
en . Esto resulta útil cuando desea controlar excepciones de forma personalizada, como registrarlas o proporcionar una experiencia de usuario diferente.
Clases derivadas
System.CommandLine.CommandLineConfiguration
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.