利用反射创建实例强制转换为接口失败小结

最近码代码是遇到一个很奇怪的问题,利用反射创建实例对象后强制转换为接口类型时抛出异常

然后看了下类的继承关系

没有问题,查看代码用 m_queryImplementAssembly = Assembly.Load(m_queryImplementAssemblyName);

m_queryImplementAssembly.CreateInstance(strInstanceName);也不应该会出问题,

后来换了一种方式Activator.CreateInstance仍然无果。就这样纠结了一天。要下班时灵感闪现,

Type t = typeof(T);看了一下t的类型,发现也是传进来的类型,就在纳闷and绝望的时候扫到了t程序集的路径,原来是传进去接口的dll不和

m_queryImplementAssembly在同一个路径下,尽管m_queryImplementAssembly下接口的dll和传进去的dll代码完全一致也无法完成转换,

于是修改了一下程序编译时的输出路径,问题得以解决。

大家如果以后碰到此类问题记得先看下各自的路径是否一致。

原文地址:https://www.cnblogs.com/a178172698/p/4536548.html