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

标签 c# reflection

我有一个坏掉的程序集,我想反射(reflection)一下,它坏得并不严重,它只是找不到引用的程序集,所以它没有通过 PEVerify。但是....Assembly.LoadFrom() 仍将加载它,而 GetTypes() 将抛出 ReflectionTypeLoadException,.LoaderExceptions 数组向我显示无法找到引用的程序集。在这一点上,我遇到了障碍。

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

最佳答案

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

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

关于c# - 当 Assembly.GetTypes() 由于缺少引用程序集而失败时,反射器如何显示类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1726428/

相关文章:

c# - 在 C# 中使用(复杂的)C 结构

c# - 使用 HtmlAgilityPack 解析 rel 规范

c# - 自动更新下载最新的 .exe 文件 - 如何验证它没有被篡改?

c# - ExcelCom 将公式写入单元格会导致#name?

c# - 如何检查类型是否提供无参数构造函数?

c# - HttpGet 在 Mvc 核心 2.0 中返回 404

c# - 无法跨程序集通过自定义属性获取类型

c# - 如何向多个类添加扩展方法?

python - 如何按照定义的顺序迭代类的属性?

c# - 如何通过反射从单例类中获取实例