Преобразование метода IL в код C # с использованием десериализации - PullRequest
0 голосов
/ 24 октября 2018

Может быть, это вопрос дампа, потому что я новичок в 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

Я генерирую DynamicMethod из этой информации, используя DynamicILInfo.Я хочу знать, как я могу получить читабельный код C #, который можно получить из этой информации о кодеке метода IL?

[Редактировать]

Хорошо. Итак, я смог построить DynamicMethod из этой информации и получить ILкод с использованием ILVisulizer показан на 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 #используя программирование?

...