从C#源代码中发出IL OpCodes

时间:2012-06-04 12:24:16

标签: c# .net il dynamic-method

如何解析用于生成IL操作码的C#源代码,可以在DynamicMethod中使用?

我想动态执行代码而不生成不必要的程序集。 像这样:

var body = "return \"sample\";";
var dm = new DynamicMethod("method_" + Guid.NewGuid().ToString("N"), typeof(string), null);
var parser = new SomeKindOfCSharpParser();
parser.Emit(body, m.GetILGenerator());

2 个答案:

答案 0 :(得分:1)

没有办法实现它。

您有几种方法可以实现它:

  1. 您可以使用C#编译器,但它会将外部cs文件编译为单独的程序集。
  2. 您可以使用CodeDOM构建和编译代码树
  3. 您可以构建表达式树并对其进行编译
  4. 您可以生成一个又一个IL指令的代码

答案 1 :(得分:1)

Roslyn应该接近这个......

相关问题