2

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

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

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());
4

2 回答 2

1

没有办法实现它。

你有几种方法来实现它:

  1. 您可以使用 C# 编译器,但它会将外部 cs 文件编译成单独的程序集。
  2. 您可以使用 CodeDOM 构建和编译代码树
  3. 您可以构建表达式树并编译它
  4. 您可以一个接一个地生成代码 IL 指令
于 2012-06-04T12:33:05.960 回答
1

罗斯林应该和这个差不多……

于 2012-06-04T12:36:01.770 回答