是否可以传入包含方法定义的字符串并在C#中执行它

本文关键字:串并 字符串 执行 字符 包含 定义 方法 是否 | 更新日期: 2023-09-27 17:58:47

我正试图弄清楚这样的事情是否可能:

string simpleMethod = "public void Hello() { Console.WriteLine('"Hello'"); }"
ExecuteMethod(simpleMethod);
public void ExecuteMethod(string myMethod) 
{
  //???
}

预期输出:

Hello

我知道上面的例子可能是不好的做法,但我很好奇是否有可能这样做。如有任何帮助或见解,我们将不胜感激,谢谢。

是否可以传入包含方法定义的字符串并在C#中执行它

您可以使用Roslyn编译器服务。应该是VS2012(.Net 4.5)的一部分,但也可能在VS2010中提供,因为CTP是为其发布的http://blogs.msdn.com/b/visualstudio/archive/2011/10/19/introducing-the-microsoft-roslyn-ctp.aspx