cil - 用于从字节数组中获取 IL 的 API

标签 cil

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

我发现了这个,但它不适用于泛型。我几乎在寻找在所有框架版本中转换理解这些字节的指导。

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

最佳答案

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

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

您可以在我的 blog post 中阅读有关实现的更多信息.或者你可以去implementation并开始使用它。

关于cil - 用于从字节数组中获取 IL 的 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/416265/

相关文章:

没有 setter 的 C# 属性 - 如何从构造函数中设置它?

c# - 为什么 C# 编译器将此 != 比较翻译成 > 比较?

c# - 将 lambda 作为 IL 流传递给辅助 AppDomain,然后使用 DynamicMethod 将其组装回去

generics - Mono.Cecil:从其他程序集中调用 GENERIC 基类的方法

c# - MSIL有ROL和ROR指令吗?

c# - 有没有办法查看 DynamicMethod 生成的 x86 汇编代码?

c# - 是否有用于在运行时验证动态程序集的 MSIL 的 API?

clr - 为什么具有 PE​​Verified 堆栈溢出场景 (maxstack) 的程序不会使 CLR 崩溃?

c# - 编译器为 delegate 关键字生成的密封类包含虚方法

c# - 在哪里可以找到有关 .NET 中多维 System.Array 实例的 Get、Set 和 Address 方法的信息?