以下是我再使用抽象工厂+反射重构机房时,在Factoy中出现了以下一个问题:
去网上查了一下资料,发现这是一个非常普遍的问题,它出现的原因主要有两种:
第一种:
载入DLL路径错误。解决的方法是调整D层生成DLL的路径到UI的bin目录中。
例如以下图:
反射的一个原则是:一切皆以UI层的bin目录中的dll名称为中心。说白一点,dll就是一个类库。我理解的反射。就是一串拼接的字符串,组成要实例化的类的名字。使用反射载入类时,默认是从UI层中的bin中找的,所以要在UI的bin目录下生成D层类的dll。这样才干顺利载入。
另外一种:
是对第一种异常的扩张,异常名称为:未能载入文件或程序集”DAL”或它的某一个依赖项。试图载入格式不对的程序。这个异常主要是因为引用的项目.net版本号与启动的框架不同引起的。如操作系统是64位的,但公布的程序引用了一些32位的ddl。所以出现了兼容性的问题。
解决方式一:假设是64位机器,IIS——-应用程序池—高级设置——启用32位应用程序 :true。
解决方式二:改动项目属性——生成——目标平台(比方。X86\X64)