以下是我再使用抽象工厂+反射重构机房时,在Factoy中出现了以下一个问题:   

     异常:未能载入文件或程序集”DAL”或它的某一个依赖项——解决的方法_字符串

    去网上查了一下资料,发现这是一个非常普遍的问题,它出现的原因主要有两种:

    第一种:

    载入DLL路径错误。解决的方法是调整D层生成DLL的路径到UI的bin目录中。

例如以下图:

    异常:未能载入文件或程序集”DAL”或它的某一个依赖项——解决的方法_.net_02

    反射的一个原则是:一切皆以UI层的bin目录中的dll名称为中心。说白一点,dll就是一个类库。我理解的反射。就是一串拼接的字符串,组成要实例化的类的名字。使用反射载入类时,默认是从UI层中的bin中找的,所以要在UI的bin目录下生成D层类的dll。这样才干顺利载入。

 

    另外一种:

    是对第一种异常的扩张,异常名称为:未能载入文件或程序集”DAL”或它的某一个依赖项。试图载入格式不对的程序。这个异常主要是因为引用的项目.net版本号与启动的框架不同引起的。如操作系统是64位的,但公布的程序引用了一些32位的ddl。所以出现了兼容性的问题。
    解决方式一:假设是64位机器,IIS——-应用程序池—高级设置——启用32位应用程序 :true。
    解决方式二:改动项目属性——生成——目标平台(比方。X86\X64)

    异常:未能载入文件或程序集”DAL”或它的某一个依赖项——解决的方法_应用程序_03