• Assembly.Load()不能加载程序集的问题


    会出现“未能加载文件或程序集“Com.SQLServerDAL”或它的某一个依赖项。系统找不到指定的文件”的情况。就是无法找到该程序集,主要是没理解它运行的机制,其实如果
    Assembly.Load(path).CreateInstance(className);
    写成
    Assembly.Load(“Com.SQLServerDAL.dll").CreateInstance(className);
    这找的不是一个名称空间,而是在bin里的一个dll文件。而项目SQLServerDAL默认生成的dll文件的名字是SQLServerDAL.dll,于是就会出现以上的错误。那么只要在该项目属性里把程序集名称改成“Com.SQLServerDAL“就行了。

     ===================================================================================================

    错误描述:未能加载文件或程序集“SQLServerDAL”或它的某一个依赖项。文件不存在。 

    原因:1.在利用分层设计思想开发时,关于动态反射的理解不清晰。 

           2.由于开发工具的bug问题,造成未能加载程序集。 

    解决方案: 

    1.反射编程要求在网站的Bin文件夹中有已经编译好的.DLL文件(即保持DLL文件存在),并且保持名称和编译前类库的名称一致。可称:添加引用性。 

    2.查看网站中的项目(类库)属性,确认是否默认命名空间和程序集名称以及Bin文件夹下的DLL文件名称是否一致,不一致则会出现未能加载文件或者程序集,所以的修改项目的属性。可称:名称一致性。 

    3.建议在编程的时在创建类库的时候写上系统名称+项目名称,能够有效的避免Bug产出。即:SystemName.Model或者SystemName.IDAL。eg:BBS.Model。可称:名称完整性。

    最主要:path的DLL需要在网站WEB的BIN目录中

  • 相关阅读:
    (笔记)Mysql命令mysqldump:备份数据库
    (笔记)Mysql命令rename:修改表名
    (笔记)Mysql命令alter add:增加表的字段
    (笔记)Mysql命令update set:修改表中的数据
    (笔记)Mysql命令delete from:删除记录
    (笔记)Mysql命令select from:查询表中的数据(记录)
    psutil库
    生成器 yield
    高阶函数map(),filter(),reduce()
    logging模块
  • 原文地址:https://www.cnblogs.com/hejunrex/p/2264966.html
Copyright © 2020-2023  润新知