assembly.CreateInstance返回null

Lis*_*isa 3 c#

我正在使用assembly.CreateInstance,它返回null,虽然使用它与不同的项目使用相同的DLL文件"汇编文件"很好,你能告诉我何时以及为什么它返回null的原因?请这是紧急的??

编辑

我正在搜索的类型有一个默认的构造函数,但它实现了另一个接口,就像这样.Project1,有接口A并使包含新类型的DLL让它成为实现A.Project2的typeB,具有相同的接口A并使用"CreateInstance"方法来定位类型typeB,但是这里CreateInstance返回null,有什么建议?

Mar*_*ell 7

怀疑它是否适用于此,但是有一个边缘情况CreateInstance返回null(即Nullable<T>),以及一个常规类可以构造到的一个极端角落情况(ProxyAttribute讨论)null.

但更可能的是:

  • 它不存在(名称错误,也许)
  • 您正在使用as,并且接口实现(可能接口在两个不同的程序集中声明;它们分别计为每个接口中的不同接口,即使名称和名称空间相同)

从编辑中,它听起来像是最后一点; 您应该定义一次接口,并在程序集之间引用,以便其他程序集可以查看(并实现)该接口.