0

是否有任何免费库允许在运行时将 IL 代码转换为 C#?

谢谢,克里斯蒂安

编辑

这是我所拥有的一个例子:

在我的程序中,有时我有一个字符串列表,类似于位于某个程序集中的类的 IL 代码:

// =============== CLASS MEMBERS DECLARATION ===================

.class public auto ansi beforefieldinit Probant.Arithmetics
       extends [mscorlib]System.Object
{
  .method public hidebysig instance int32 
          Sum(int32 a,
              int32 b) cil managed
  {
    // Code size       11 (0xb)
    .maxstack  2
    .locals init ([0] int32 result,
             [1] int32 CS$1$0000)
    IL_0000:  nop
    IL_0001:  ldarg.1
    IL_0002:  ldarg.2
    IL_0003:  add
    IL_0004:  stloc.0
    IL_0005:  ldloc.0
    IL_0006:  stloc.1
    IL_0007:  br.s       IL_0009

    IL_0009:  ldloc.1
    IL_000a:  ret

现在有了这个字符串数组(每个字符串一行),我想以某种方式生成相应的 C# 代码。

有谁知道ILSpy是否可以做到这一点?

4

2 回答 2

0

ILSpy 使用 Mono.Cecil 读取输入程序集,然后使用 Cecils 中间表示。

如果您将 IL 作为文本而不是二进制文件,则必须找到可以将文本组装成程序集或至少组装成 Cecils 表示形式的东西。

于 2011-07-16T20:01:37.180 回答
0

按照我的说法:

public int Sum(int a, int b)
{
    int result,CS$1$0000;
    result = a + b;
    CS$1$0000 = result;

    return CS$1$0000;
}
于 2014-06-25T12:47:00.370 回答