达网络4 - 运行代码从串 - 在C#/ F#/的IronRuby / IronPython的(.

2019-10-22 16:38发布

我有什么办法在.NET从字符串运行代码?

Console.WriteLine(Compile("1 + 2 * 3"));    // results is 7.

我们还有什么别的选择吗?

  • C# - 在运行时编译的代码?
  • IronRuby的/ IronPython的?
  • F#?

Answer 1:

因此,像IronRuby和IronPython的动态语言使它很容易做你想要什么。 创建一个脚本引擎并执行字符串。 易为。

C#,这是可能的,使用代码DOM ...但它每次编译的代码放到一个DLL。 这是一个昂贵的行为,并可能导致您的应用程序在内存大小随时间而增加,如果你不这样做与应用程序域一些棘手的东西。 这是可以做到的,但我真的很喜欢使用的IronRuby或IronPython的过这种方法。 这是更简单。

最后,在C#5.0中,我们期待看到编译器作为管理服务。 这意味着你将能够运行EVAL在未来(“// C#代码”)...但它尚未公布。

希望能帮助到你!



Answer 2:

结帐NCalc。 这是一个DLL您可以在您的应用程序,它支持多种数学和逻辑运算。 http://ncalc.codeplex.com/



文章来源: .net 4 - run code from string - in C# / F# / IronRuby / IronPython