好的,开始时,我已经阅读了两个
How to prevent ReflectionTypeLoadException when calling Assembly.GetTypes()
和
http://haacked.com/archive/2012/07/23/get-all-types-in-an-assembly.aspx
但我的问题有点复杂。
我的目标只是查看程序集是否包含实现特定接口的类(或类型)以及这些类(或类型)是什么。如果您阅读链接中的信息,您将看到一个解决方案,它提供了一种获取类的方法,但只要它们可以加载。如果抛出ReflectionTypeLoadException异常,无法完全加载的任何类型仍然不可用,所以它对我没有任何好处。
我的问题是,如何获取说明特定类型继承的类型的信息,无论我是否可以实际加载类型,无论我是否可以加载它继承的任何类型,即使它是只是FullName?
顺便说一句,程序集位于网络路径上(不是映射驱动器,UNC路径)。
修改
我还想指出,我在上面的链接中测试了解决方案,包括本地路径和UNC路径,并且任何无法加载的类型在异常中的类型集合中返回为null,无论是否缺少的类型与原始程序集位于同一位置(在项目中引用并设置为复制本地)。