最近码代码是遇到一个很奇怪的问题,利用反射创建实例对象后强制转换为接口类型时抛出异常
然后看了下类的继承关系
没有问题,查看代码用 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代码完全一致也无法完成转换,
于是修改了一下程序编译时的输出路径,问题得以解决。
大家如果以后碰到此类问题记得先看下各自的路径是否一致。