当Assembly.GetTypes()由于缺少引用的程序集而失败时,反射器如何显示类型

Tim*_*vis 3 c# reflection

我有一个破碎的程序集,我想要反思,它没有严重破坏,它只是找不到引用的程序集,所以它确实失败了PEVerify.但是.... Assembly.LoadFrom()仍然会加载和GetTypes()将抛出一个ReflectionTypeLoadException,该.LoaderExceptions阵列显示我什么引用程序无法找到.此时我遇到了障碍.

然而,伟大的小工具Reflector能够进一步实际显示包含的类型,并通过给我一个弹出对话框来浏览它,优雅地处理缺少的引用问题.我的问题是,GetTypes()失败之后,反射器是如何设法获取类型的呢?

dtb*_*dtb 5

Reflector不使用System.Reflection来分析程序集.

我不知道Reflector使用哪个库,但您可能想看看Cecil.