在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; } 

您可以使用CSharpCodeProvider类,但是您需要在代码片段周围构建相当多的额外代码,因为您必须提供完整的类。 我为深度C#的“Snippy”工具做了这个,你可以下载源代码来获得一个简单的例子来说明它是如何完成的。

然而, 罗斯林在这个领域的生活变得越来越简单 – 你可能想要掌握CTP并探索它。

看看Roslyn ScriptEngine 。