在c#运行时将字符串转换为可执行代码
本文关键字:可执行 代码 转换 字符串 运行时 | 更新日期: 2023-09-27 18:16:05
是否有任何方法可以在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
类,但是您需要围绕代码片段构建相当多的额外代码,因为您必须提供一个完整的类。我这样做是为了我的"Snippy"c#深度工具,你可以下载源代码来获得一个简单的例子,看看它是如何完成的。
然而,有了Roslyn,这方面的生活变得简单多了——你可能想要掌握CTP并探索一下。
看一下Roslyn ScriptEngine