我有什么方法可以在.NET中运行代码从字符串?.net 4 - 从字符串运行代码 - 在C#中/ F#/ IronRuby/IronPython
Console.WriteLine(Compile("1 + 2 * 3")); // results is 7.
我们还有其他的选择吗?
- C# - 在运行时编译代码?
- IronRuby/IronPython?
- F#?
我有什么方法可以在.NET中运行代码从字符串?.net 4 - 从字符串运行代码 - 在C#中/ F#/ IronRuby/IronPython
Console.WriteLine(Compile("1 + 2 * 3")); // results is 7.
我们还有其他的选择吗?
因此,像IronRuby和IronPython这样的动态语言可以很容易地做你想做的事情。创建一个脚本引擎并执行该字符串。那样容易。
C#,有可能,使用代码DOM ...但它每次编译代码到DLL中。这是一种代价昂贵的行为,如果您不对AppDomain做一些棘手的事情,可能会导致您的应用随着时间的推移而增大内存大小。它可以完成,但我更喜欢在这种方法中使用IronRuby或IronPython。它更简单。
最后,在C#5.0中,我们期待将编译器看作是一种托管服务。这意味着您将来可以运行eval(“// c#code”)...但它尚未提供。
希望它有帮助!
结帐NCalc。这是一个你可以包含在你的应用程序中的DLL,它支持多种数学和逻辑运算。 http://ncalc.codeplex.com/
你说用IronPython创建'Eval'函数是很容易的。 – stacker 2010-06-03 13:58:21