Un analyseur de ligne de commande prenant en charge les appels de méthode directe prenant en entrée un nombre illimité de paramètres de type primitif et complexe
Ultramapper.Commandline est un analyseur de ligne de commande .NET: un outil qui analyse (analyser et interpréter) votre texte de commande et la carte (trasform) en objets fortement typés .
Ultramapper.comandline simplifie considérablement votre code:
Ultramapper.Commandline est alimenté par Ultramapper, un puissant mappeur .net!
Ok, cela aura une certaine complexité, mais je veux vous impressionner!
L'exemple suivant montre comment appeler la méthode AddTodatabase à partir de Commandline, passant en entrée une représentation de chaîne du client de type complexe bien structuré, que la méthode addtodatabase prend en entrée.
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 ; }
}
}L'exemple ci-dessus montre quelques fonctionnalités de base pour commencer:
Comment analyser les arguments:
T parsedArgs = CommandLine . Instance . Parse < T > ( args ) ; La ligne de code ci-dessus fait tout le travail.
L'argument générique t est votre «classe de commandes» .
Dans votre «classe de commandes», vous définissez toutes les opérations que vous souhaitez prendre en charge au niveau de la ligne de commande .
La syntaxe de base:
Ce n'est pas tout ce que vous devez savoir sur la syntaxe
En savoir plus sur la syntaxe ici
L'attribut d'option:
Ce n'est pas tout ce que vous devez savoir sur l'attribut d'option
En savoir plus sur l'attribut d'option ici
Il y a quelques autres choses et quelques remarques que vous devriez savoir sur Ultramapper.Commandline
Consultez le wiki pour plus d'informations
Tous les commentaires sont les bienvenus