2011-11-30 60 views
2

有沒有什麼辦法可以在運行時在c#中將一串代碼轉換爲可執行代碼?在運行時將字符串轉換爲可執行代碼在c#中?

所以,如果我有謂詞

This is normal text in a txt file 
    u => u.Contains("android") && u.Contains("webkit") 
    u => u.Contains("iphone") && u.Contains("webkit") 

我希望通過我的程序讀取它,然後捕獲每個謂詞作爲一個字符串,然後將其轉換爲在運行代碼的文件。喜歡的東西:

string[] predicates = ///get file contentsa 

foreach(var predicate in predicates) 
{ 
     if(userAgent.ConformsTo(eval(predicate))) return true; 
} 

回答

2

您可以使用CSharpCodeProvider類,但你將需要建立相當多的額外代碼周圍的片斷,你必須提供一個完整的類。我爲我的深度C#的「Snippy」工具做了這個,你可以通過download the source來得到一個簡單的例子來說明如何完成它。

但是,在這個區域,生活變得更加簡單Roslyn - 您可能想要掌握CTP並探索這一點。

相關問題