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

时间:2014-10-27 13:40:37

标签: c# reflection metadata clr mono.cecil

这是THIS之一的后续问题:

要分析一个程序集(或它所用的类型),我想阅读这个程序集的TypeRef表。

我得到提示使用Mono.Cecil来执行此操作,但我只找到了阅读TypeDef信息的示例。另外浏览cecil的源代码我只发现在我看来负责读取元数据的内部类,但我没有找到"公共接口"。

我还发现THIS文章使用了一些COM库来读取元数据,但我也无法弄清楚如何将其用于我的目的。

有谁能告诉我如何阅读大会上的TypeRef表格(最好使用像Mono.Cecil而不是COM这样的东西)?

如果有人能指出我正确的方向,我也很高兴......

1 个答案:

答案 0 :(得分:2)

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

var assembly = AssemblyDefinition.ReadAssembly(assemblyPath);

var typeReferences = assembly.MainModule.GetTypeReferences();