11

MethodBody 类中有一个 GetILAsByteArray 方法,它给出了方法的主体。我正在寻找将此字节数组转换为更易于理解的 IL 指令(转换为 List 或类似的东西)。有哪些资源、开源代码或 api 可以帮助我理解和转换这个字节数组(或为我做)?

我发现了这一点,但它不适用于泛型。我非常期待在所有框架版本中转换理解这些字节的指导。

CLI 文档对于学习 IL 指令也很有帮助,但我看不出如何使用它来使这些字节有意义。

4

3 回答 3

10

我刚刚编写了一个扩展方法,以便使用 GetILAsByteArray 获得更易于理解的指令列表。这很简单,API 是这样的:

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

您可以在我的博客文章中阅读更多关于实现的信息。或者你可以去实现并开始使用它。

于 2009-05-01T09:00:57.643 回答
2

看看 Mono.Cecil 库。

于 2009-03-15T16:25:46.670 回答
1

这是一项艰巨的任务。我写了一个 IL 阅读器的开头,它实现了相当多的操作码:但你需要完成它。

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

还有MONO Cecil,功能齐全。

于 2009-01-06T12:16:47.817 回答