如何将IL代码转换为Mono.Cecil命令?

时间:2019-09-30 09:21:37

标签: mono.cecil

我有以下C#代码

        /* 0x0019AD95 16           */ IL_0000: ldc.i4.0
        /* 0x0019AD96 7380630006   */ IL_0001: newobj    instance void Class893/'<method_0>d__0'::.ctor(int32)
        /* 0x0019AD9B 25           */ IL_0006: dup
        /* 0x0019AD9C 02           */ IL_0007: ldarg.0
        /* 0x0019AD9D 7D54560004   */ IL_0008: stfld     class Class893 Class893/'<method_0>d__0'::'<>4__this'
        /* 0x0019ADA2 2A           */ IL_000D: ret

在IL中(例如dnSpy):

                    inst.Add(Instruction.Create(OpCodes.Ldc_I4_0));
                    inst.Add(Instruction.Create(OpCodes.Newobj));
                    inst.Add(Instruction.Create(OpCodes.Dup, 0x0019AD9B));
                    inst.Add(Instruction.Create(OpCodes.Ldarg_0));
                    inst.Add(Instruction.Create(OpCodes.Stfld, 0x0019AD9D));
                    inst.Add(Instruction.Create(OpCodes.Ret));

我想将其转换为Mono.Cecil指令,如下所示:

  selector:
    matchLabels:
      io.kompose.service: kafka

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您也可以使用https://cecilifier.mehttps://github.com/adrianoc/cecilifier)工具来帮助您学习如何将C#转换为https://github.com/jbevain/cecil

免责声明:我是该工具的开发者。