API для получения IL из байтового массива

В классе MethodBody существует метод GetILAsByteArray, который дает тело метода. Я ищу преобразование этого массива байтов в более понятные инструкции IL (в список или что-то в этом роде). Какие ресурсы, открытый исходный код или api доступны, помогут мне понять и преобразовать этот массив байтов (или сделать это для меня)?

Я нашел это, но он не работает с дженериками. Я в значительной степени ищу руководство для преобразования этих байтов во всех версиях рамок.

Документация CLI также полезна для обучения инструкциям IL, но я не могу понять, как использовать ее, чтобы сделать эти байты полезными.

Ответ 1

Я просто написал метод расширения, чтобы получить более понятный список инструкций, используя GetILAsByteArray. Это довольно просто, API выглядит так:

public static IList<Instruction> GetInstructions (this MethodBase self);

Подробнее о реализации можно узнать в своем сообщении в блоге. Или вы можете перейти и начать использовать его.

Ответ 2

Посмотрите на библиотеку Mono.Cecil.

Ответ 3

Это огромная работа. Я написал старты читателя IL, и у него было довольно много кодов операций: но вам нужно его закончить.

http://svn.ensemble-os.org/tags/OldOCJ/CIL/

Существует также MONO Cecil, который является полнофункциональным.