.net中有哪些方法可以从字符串中运行代码?
Console.WriteLine(Compile("1 + 2 * 3")); // results is 7.
我们还有其他选择吗?
答案 0 :(得分:2)
因此,像IronRuby和IronPython这样的动态语言可以很容易地做你想要的。创建脚本引擎并执行字符串。很简单。
C#,有可能,使用Code DOM ...但它每次都会将代码编译成DLL。这是一种代价高昂的行为,如果您不使用App Domains做一些棘手的事情,可能会导致您的应用程序随着时间的推移而增加内存大小。它可以完成,但我更喜欢使用IronRuby或IronPython这种方法。它简单得多。
最后,在C#5.0中,我们期望将编译器视为托管服务。这意味着您将来可以运行eval(“// c#code”)...但它尚不可用。
希望它有所帮助!
答案 1 :(得分:0)
Checkout NCalc。它是您可以包含在应用程序中的DLL,它支持多种数学和逻辑运算。 http://ncalc.codeplex.com/