ตัวแยกวิเคราะห์คำสั่งที่รองรับการเรียกใช้วิธีโดยตรงโดยใช้เป็นอินพุตจำนวนพารามิเตอร์ดั้งเดิมและแบบซับซ้อนจำนวนไม่ จำกัด
Ultramapper.Commandline เป็น ตัวแยกวิเคราะห์บรรทัดคำสั่ง . NET: เครื่องมือที่ แยกวิเคราะห์ (วิเคราะห์และตีความ) ข้อความบรรทัดคำสั่งและ แผนที่ ของคุณ (trasform) มันลงในวัตถุ ที่พิมพ์อย่างรุนแรง
Ultramapper.Commandline ทำให้รหัสของคุณง่ายขึ้นอย่างมาก:
Ultramapper.Commandline ขับเคลื่อนโดย Ultramapper ซึ่งเป็น Mapper. NET ที่ทรงพลัง!
โอเคนี่จะมีความซับซ้อนบางอย่าง แต่ฉันต้องการสร้างความประทับใจให้คุณ!
ตัวอย่างต่อไปนี้แสดงวิธีการเรียกใช้วิธี addTodatabase จาก commandline ผ่านเป็นอินพุตการแสดงสตริงของ ลูกค้า ประเภทที่ซับซ้อนที่มีโครงสร้างที่ดีซึ่งเป็นวิธีการที่ 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
ตรวจสอบ Wiki สำหรับข้อมูลเพิ่มเติม
ยินดีต้อนรับข้อเสนอแนะใด ๆ