【发布时间】:2016-05-16 12:37:19
【问题描述】:
我在运行时使用带有单声道的外部 dll 时遇到问题。 假设我们有一个包含 IMyInterface 接口的框架 dll,这是一个使用该框架的“插件”项目,其中一个类实现 IMyInterface 接口。 这个插件一旦部署为 dll,就可以在运行时从框架本身加载,并且所有实现 IMyInterface 的类都必须添加到框架内的集合中。为此,必须对所有类型进行类型测试。不幸的是,当我从加载的 dll 中获取所有类型时,即使导入的类正在实现已知接口,类型测试也会失败。更准确地说,如下陈述
ImportedType.GetType().IsAssignableFrom(typeof(IMyInterface))
返回 false,即使该类型实际上实现了 IMyInterface。我想这是关于导入类型是 System.RuntimeType,而不是 System.Type。但是我该如何处理这个问题呢?接口 IMyInterface 可能在不同解决方案使用的同一程序集中具有不同的签名?
【问题讨论】: