Паризер командной линии, поддерживающий прямые вызовы метода, принимая в качестве ввода неограниченное количество примитивных и сложных параметров
Ultramapper.commandline-это анализатор командной строки .NET: инструмент, который разворачивается (анализируется и интерпретирует) текст вашей командной строки и карту (Trasform) его в объекты с сильными типами .
Ultramapper.commandline радикально упрощает ваш код:
Ultramapper.commandline оснащен Ultramapper, мощным .NET Mapper!
Хорошо, это будет иметь некоторую сложность, но я хочу произвести на вас впечатление!
В следующем примере показано, как вызвать метод AddTodatabase из командной линии, передавая в качестве ввода представление строки хорошо структурированного CustomerInfo комплексного типа, которое метод AddTodatabase принимает в качестве входного.
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 ; }
}
}Приведенный выше пример показывает несколько основных функций для начала:
Как проанализировать аргументы:
T parsedArgs = CommandLine . Instance . Parse < T > ( args ) ; Строка кода выше выполняет всю работу.
Общий аргумент t - ваш «класс команд» .
В своем классе команд вы определяете все операции, которые вы хотите поддерживать на уровне командной линии .
Основной синтаксис:
Это не все, что вам нужно знать о синтаксисе
Узнайте больше о синтаксисе здесь
Атрибут опции:
Это не все, что вам нужно знать об атрибуте опции
Узнайте больше об атрибуте опции здесь
Есть еще несколько вещей и несколько замечаний, которые вы должны знать об Ultramapper.commandline
Проверьте вики для получения дополнительной информации
Приглашаются любые отзывы