Un analizador de línea de comandos que admite llamadas de método directo que toma como entrada un número ilimitado de parámetros primitivos y de tipo complejo
Ultramapper.Commandline es un analizador de línea de comandos .NET: una herramienta que analiza (analizar e interpretar) su texto de línea de comando y mapearlo (Trasform) en objetos fuertemente tipo .
Ultramapper.commandline simplifica drásticamente su código:
Ultramapper.commandline está alimentado por Ultramapper, ¡un potente mapeador de .NET!
Ok, esto tendrá algo de complejidad, ¡pero quiero impresionarte!
El siguiente ejemplo muestra cómo llamar al método AddTodatabase desde la línea de comandos, pasando como entrada una representación de cadena del customerInfo de tipo complejo bien estructurado, que el método addTodatabase toma como entrada.
class Program
{
static void Main ( string [ ] args )
{
//--add ("John Smith" 26 account=(number=AC2903X balance=3500.00 creditcards=[(CRD01 1000.00) (CRD02 2000.00)]))
CommandLine . Instance . Parse < CommandLineSupportedCommands > ( args ) ;
}
public class CommandLineSupportedCommands
{
[ Option ( Name = "add" , HelpText = "Adds new customer to db" ) ]
public void AddToDatabase ( CustomerInfo customer )
{
Assert . IsTrue ( customer . Name == "John Smith" ) ;
Assert . IsTrue ( customer . Age == 26 ) ;
Assert . IsTrue ( customer . Account . AccountNumber == "AC2903X" ) ;
Assert . IsTrue ( customer . Account . Balance == 3500 ) ;
Assert . IsTrue ( customer . Account . CreditCards [ 0 ] . CardNumber == "CRD01" ) ;
Assert . IsTrue ( customer . Account . CreditCards [ 0 ] . MonthlyLimit == 1000 ) ;
Assert . IsTrue ( customer . Account . CreditCards [ 1 ] . CardNumber == "CRD02" ) ;
Assert . IsTrue ( customer . Account . CreditCards [ 1 ] . MonthlyLimit == 2000 ) ;
Console . WriteLine ( "New customer inserted!" ) ;
}
}
public class CustomerInfo
{
public class BankAccountInfo
{
public class CreditCardInfo
{
public string CardNumber { get ; set ; }
public double MonthlyLimit { get ; set ; }
}
[ Option ( Name = "number" ) ]
public string AccountNumber { get ; set ; }
public double Balance { get ; set ; }
public List < CreditCardInfo > CreditCards { get ; set ; }
}
public string Name { get ; set ; }
public int Age { get ; set ; }
public BankAccountInfo Account { get ; set ; }
}
}El ejemplo anterior muestra algunas características básicas para comenzar con:
Cómo analizar los argumentos:
T parsedArgs = CommandLine . Instance . Parse < T > ( args ) ; La línea de código anterior hace todo el trabajo.
El argumento genérico t es su 'clase de comandos' .
En su 'clase de comandos', define todas las operaciones que desea admitir a nivel de línea de comandos .
La sintaxis básica:
Esto no es todo lo que necesita saber sobre la sintaxis
Lea más sobre la sintaxis aquí
El atributo de opción:
Esto no es todo lo que necesita saber sobre el atributo de opción
Lea más sobre el atributo de opción aquí
Hay un par de cosas más y algunos comentarios que debes saber sobre Ultramapper. Commandline
Consulte el wiki para obtener más información
Cualquier comentario es bienvenido