存储在字符串变量中的C#命令异常

本文关键字:命令 异常 字符串 变量 存储 | 更新日期: 2023-09-27 18:20:59

可能重复:
C#eval等价物?

是否可以执行存储在字符串变量中的C#命令

类似于SqlServer 中的动态查询

存储在字符串变量中的C#命令异常

当前版本的.NET中没有任何内置内容允许这样做。然而,Roslyn项目旨在专门启用这样的场景。他们有一个CTP。

一个简单的例子(来自Kirill Osenkov的博客)是:

[TestMethod]
public void SimpleEvaluationUsingScriptEngine()
{
    ScriptEngine engine = new ScriptEngine();
    int result = engine.Execute<int>("1 + 2");
    Assert.AreEqual(3, result);
}

您可以使用CSharpCodeProvider将文件或字符串中的源代码编译到可以加载的程序集中。然后,您可以通过反射来调用生成的类。