从程序集元数据读取/获取TypeRef表

本文关键字:TypeRef 获取 程序集元数据 读取 | 更新日期: 2023-09-27 18:27:55

这是这个问题的后续问题:

为了分析一个程序集(或它使用的类型),我想阅读该程序集的TypeRef表。

我得到了使用Mono.Cecil来做这件事的提示,但我只找到了阅读TypeDef信息的示例。同样在浏览cecil的源代码时,我只发现了内部类,在我看来,这些类负责读取元数据,但我没有发现"公共接口"。

我还发现了这篇文章,它使用一些COM库来读取元数据,但我也不知道如何将其用于我的目的。

有人能告诉我如何读取程序集的TypeRef表(最好使用Mono.Cecil之类的东西,而不是COM)吗

如果有人能为我指明正确的方向,我也很高兴。。。

从程序集元数据读取/获取TypeRef表

使用Cecil,只需要访问ModuleDefinition.GetTypeReferences()。例如:

var assembly = AssemblyDefinition.ReadAssembly(assemblyPath);
var typeReferences = assembly.MainModule.GetTypeReferences();