http://blogs.msdn.com/ivo_manolov/archive/2008/12/17/9230331.aspx
摘錄使用的第三常用的方法是形成strongly-鍵入來自命令行參數的命令。這是案件時常見的命令行如下:
some-exe COMMAND parameters-to-the-command
在這種情況下的解析是有點更復雜:
- 創建一個類爲每個支持的命令,從派生Command抽象基類並實現預期的Execute方法。
將預期命令與命令行參數一起傳遞給CommandLineParser.ParseCommand - 該方法將返回一個強類型的Command實例,該實例可以是Execute() - d。
//實施例#3://樣品用於解析以下命令行: //將Test.exe運行/的runid = 10 /冗長 //在這個特定的情況下,我們對命令 - 有一個實際的命令行(「運行」),我們想要有效地反序列化和執行。
public class RunCommand : Command { bool? Verbose { get; set; } int? RunId { get; set; } public override void Execute() { // Implement your "run" execution logic here. } } Command c = new RunCommand(); CommandLineParser.ParseArguments(c, args); c.Execute();
============================
如果我們實例我不明白在解析參數之前的特定類,命令行參數「run」的重點是什麼,這是第一個參數。我認爲這個想法是基於命令行參數實例化和執行命令/類(「run」參數變爲實例RunCommand類,「walk」變爲WalkCommand類等等)。它可以用最新版本完成嗎?此外,我從codeplex下載的文件不能以上述方式工作,並且不接受沒有斜槓的第一個參數。所以如果使用反射,我必須像通常的參數一樣傳遞命令名,然後執行多步驟 - 確定類名,通過反射實例化,然後通過ParseArguments解析其他參數。
我想通了,但博客編輯值得接受它作爲答案。 – MicMit 2010-06-18 06:37:10