【问题标题】:.net 4 - run code from string - in C# / F# / IronRuby / IronPython.net 4 - 从字符串运行代码 - 在 C#/F#/IronRuby/IronPython 中
【发布时间】:2010-06-03 11:48:02
【问题描述】:

.net 中有哪些方法可以从字符串运行代码?

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

我们还有哪些其他选择?

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

【问题讨论】:

    标签: c# dynamic .net-4.0 eval ironruby


    【解决方案1】:

    因此,IronRuby 和 IronPython 等动态语言让您可以轻松地做您想做的事。创建脚本引擎并执行字符串。就这么简单。

    C#,使用 Code DOM 是可能的……但它每次都将代码编译成 DLL。这是一种代价高昂的行为,如果您不使用 App Domains 做一些棘手的事情,可能会导致您的应用程序的内存大小随着时间的推移而增长。可以做到,但我更喜欢使用 IronRuby 或 IronPython,而不是这种方法。这要简单得多。

    最后,在 C# 5.0 中,我们希望将编译器视为托管服务。这意味着您将来可以运行 eval("//c#code") ......但它尚不可用。

    希望对你有帮助!

    【讨论】:

    • 你说使用 IronPython 创建一个Eval 函数非常容易。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多