如何读取 .net 程序集的元数据 table

How to read .net assembly's meta data table

我正在读 Jeffery Richter 的书 "CLR via C#"。他提到 CLR 元数据 table 包含 TypeRef 和 MemberRef 部分。

我想通过读取这些 MemberRef 和 TypeRef 信息来构建调用图。最好的方法是什么?经过搜索,我发现有人直接使用 PE/CLR 文件格式读取文件。有人使用本机 IMetaDataImport。我想知道是否有任何 .net 内置 类 或第 3 方库可以这样做?

谢谢!

如果您想查看元数据,可以使用 ILDasm.exe。

例子:ILDasm.exeD:\MyTestAsm.dll

下一步:查看 -> 元信息 -> 我们展示!

如果你想从代码中接收数据,你可以研究 3rd 方库 Mono:

http://www.mono-project.com/docs/tools+libraries/libraries/Mono.Cecil/

MetaData 它是 IL 代码的一部分。如果你想看 Il 代码,你可以看到这个: How to get access to embedded assembly's metadata using IMetaDataDispenser.OpenScope?