发新话题
打印

工厂模式中“未能加载文件或程序集”的解决办法

工厂模式中“未能加载文件或程序集”的解决办法

  当采用了一个标准的三层模式后,一般需要根据实际的情况来改变连接的数据库类型。而往往当改变代码时,在DALFactory中创建数据层接口、生成一个缓存对象时,在 objType = Assembly.Load(path).CreateInstance(CacheKey); 处发生失败,提示“未能加载文件或程序集“XXXXDAL”或它的某一个依赖项。系统找不到指定的文件。”让人郁闷不以。在网上查了不少资料,都解释的晕晕忽忽。后来研究反射,才发现问题所在,因为这段代码是要利用发射,而发射则需要生成后的DLL文件,并且这个DLL的名字和引用空间名都要对应一致,才可以。根据这个思路,反复研究,解决了问题。方法如下:

  1、修改web.config中代码类似如下

    <!--数据访问层程序集名称 -->
    <add key="DAL" value="XXX.OleDbDAL" /> 

    其中这个XXX是OleDbDAL的命名空间

  2、右键子项目OleDbDAL属性,修改 程序集名称 和 命名空间名称 为 XXX.OleDbDAL

  3、编译生成XXX.OldDBDAL.DLL,注意一定要生成,如没有生成,则单独编译该子项目和引用该子项目的工程

 

  好使的方法可能还有,但是我只探索出了这一个路。希望大家都能跨过这个郁闷的提示,呵呵。

TOP

补充一点 4、还要将你要引用的XXX.SQLServerDAL加入到前台web项目中进行编译

TOP

发新话题