可能是转储问题,因为我是 DynamicMethod 的新手,所以请指导我。
我有 C# 方法存储,它在二进制文件中序列化。以这种方式存储的数据。
Token: 6000196 // Meta Token
Flags: 2
MaxStack: 8
LocalVarsSig: null
Code: 00 02 72 ED 0C 00 70 28 72 00 00 06 73 98 01 00 06 28 81 01 00 06 00 02 72 3F 0D 00 70 28 72 00 00 06 73 9F 01 00 06 28 83 01 00 06 00 2A
TokenPosArray: 3 8 D 12 19 1E 23 28
Exceptions: null
我正在使用 DynamicILInfo 从这些信息中生成 DynamicMethod。我想知道如何从这个 IL 方法编解码器信息中获取人类可读的 c# 代码?
[编辑]
好的,所以我能够根据这些信息构建 DynamicMethod 并使用 ILVisulizer 获得 IL 代码,显示在https://github.com/drewnoakes/il-visualizer
当发送 IL 到监视器时,我得到以下类似的指令代码
IL_0000: nop
IL_0001: nop
IL_0002: ldstr "SampleString"
IL_0007: call System.String smethod_4(System.String)/GClass3+GClass6
IL_000c: newobj Void.ctor(System.String)
IL_0011: stloc.0
IL_0012: ldloc.0
IL_0013: callvirt Boolean get_FirstInstance()
IL_0018: stloc.3
IL_0019: ldloc.3
IL_001a: brtrue.s IL_0033
IL_001c: nop
现在想知道如何使用编程将此代码反编译为 c#?