Um analisador de comando que suporta chamadas de método direto tomando como entrada um número ilimitado de parâmetros primitivos e complexos do tipo
Ultramapper.CommandLine é um analisador de linha de comando .NET: uma ferramenta que analisa (analise e interpreta) o texto da linha de comando e mapeia (trasform) em objetos fortemente tipados .
Ultramapper.Commandline simplifica drasticamente seu código:
Ultramapper.Commandline é alimentado pelo Ultramapper, um poderoso mapeador .NET!
Ok, isso terá alguma complexidade, mas eu quero impressioná -lo!
O exemplo a seguir mostra como chamar o método AddTodatabase do CommandLine, passando como entrada de uma representação da string do cliente de complexo bem estruturado CustomerInfo , que o 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 ; }
}
}O exemplo acima mostra alguns recursos básicos para começar:
Como analisar argumentos:
T parsedArgs = CommandLine . Instance . Parse < T > ( args ) ; A linha de código acima faz todo o trabalho.
O argumento genérico t é a sua 'classe de comandos' .
Na sua 'classe de comandos', você define todas as operações que deseja oferecer suporte ao nível de comando .
A sintaxe básica:
Isso não é tudo que você precisa saber sobre a sintaxe
Leia mais sobre a sintaxe aqui
O atributo de opção:
Isso não é tudo que você precisa saber sobre o atributo de opção
Leia mais sobre o atributo de opção aqui
Há mais algumas coisas e algumas observações que você deve saber sobre ultramapper.Commandline
Confira o wiki para obter mais informações
Qualquer feedback é bem -vindo