Assembly.Load(assemblyPath).CreateInstance(objType)  //在执行到这句时异常, objType此时为Zjgcxx.EFDAL.Web_userDAL,还有哪里不对?DAL文件
namespace Zjgcxx.EFDAL
{
    public class Web_userDAL : IWeb_userDAL
    {
        ...
    }
}vs2012报错,2010里面就正常,为什么会这样?

解决方案 »

  1.   

    因为你加上了“vs2012报错,2010里面就正常”这样一句说明,这就搞乱了条件,更加无法判断了。因为你肯定隐藏了一些东西没有说。很难说是什么原因。只能从工程上说。你应该先使用多个测试以强类型的方式调用Web_userDAL 实例对象,大量顺序和并发次序去测试。等测试通过,才给反射地程序去使用。尽量少用反射。如果必须用,那么就不要在此去搞什么“调试”。你应该通过直接了解 Web_userDAL 类型(而不是反射)的测试发现问题。
      

  2.   

    其实你的问题在一个工程上稍微注意一点正规开发的项目里基本上是不会发生的。两个原则:
    1. 尽量不要随便写工厂方法。
    2. 对于(往往只有一两处“关键”点的)工厂方法,它使用的这个type已经经过了测试,保证可以实例化成功。那个Web_userDAL 早就经过测试而保证可以实例化成功了。绝不是像你这样跑到这条CreateInstance语句上来调试。
      

  3.   

    构造函数里面有异常,抛开它本身的bug,很可能是路径问题,配置文件,或者依赖的库丢失。