解决思路:
以前遇到过这类问题,问题在于对程序集和命名空间名称混淆了,比如:命名空间叫SQLServerDAL,而程序集可能叫“Tianyige.SQLServerDAL”,或者叫成“SqlServerDAL”,都会发生找不到对象的错误。解决方法是对应好程序集的名称:
Assembly.Load("Tianyige.SqlServerDAL").CreateInstance("Tianyige.SqlServerDAL.Category");通过bin文件夹下找到相应的DLL,确定其名称。
而这次名称对应好了,看得我眼都花了,一点错没有,还是有问题。最后将错误提示中的文件的dll文件[Tianyige.SqlServerDAL]复制到网站APP下的bin目录中,问题得以解决。

模仿pet shop4做了个工厂模式的简单例子,初步了解其中流程,做个总结。
一、创建项目IDAL,包含若干接口如 IOrder,是有关Order的数据库操作接口。
二、创建项目SQLServerDAL,其中包含一个Order类,继承IOrder接口,具体实现该接口中声明的若干函数。
三、创建项目DALFactory,就是一个数据库接口工厂,负责根据选择的数据库类型(在web.config中获取如<add key="WebDAL" value="SQLServerDAL"/>)来创建相应数据库操作接口实例。如下述代码:
        public static IOrder CreateOrder()
        {
            string path = "SQLServerDAL";
            string className = path + ".Index";
            return (IOrder)Assembly.Load(path).CreateInstance(className);
        }
四、创建项目BLL,负责业务逻辑实现。其中需要调用数据库操作函数的时候声明
private static IOrder iOrder = DataAccess.CreateOrder();
然后调用IOrder中声明(SQLServerDAL.Order类中定义)的函数。
上面就是一个基本的过程,其中需要注意几点:
1、数据接口工厂DALFactory中CreateOrder函数声明成static,其他有关的地方也要用static,因为此处是利用反射动态加载程序集,所以加载一次就够了,网上偶然看了资料,据说即使多次执行加载语句也只会加载一次。
2、会出现“未能加载文件或程序集“SQLServerDAL”或它的某一个依赖项。系统找不到指定的文件”的情况。其实原因贼简单,就是无法找到该程序集,主要是没理解它运行的机制,其实如果
Assembly.Load(path).CreateInstance(className);
写成
Assembly.Load(“SQLServerDAL.dll").CreateInstance(className);
就清楚了,这找的不是一个名称空间,而是在bin里的一个dll文件。而项目SQLServerDAL默认生成的dll文件的名字是SQLServerDAL.dll,于是就会出现以上的错误。那么只要在该项目属性里把程序集名称改成“SQLServerDAL“就行了。
编程的路太长了,很多的基础要打,太多的技术要学,快失去信心了!

原文地址 http://www.cnblogs.com/strivers/archive/2010/11/27/1889633.html

转载于:https://www.cnblogs.com/steven86493481/archive/2012/02/24/2366095.html

未能加载文件或程序集Tianyige.SqlServerDAL问题解决相关推荐

  1. 未能加载文件或程序集“SqlServerDal”或它的某一个依赖项。系统找不到指定的文件。...

    今天遇到一个挺怪的问题,采用了工厂模式后,出去找不到程序集的问题: 未能加载文件或程序集"Tianyige.SqlServerDAL"或它的某一个依赖项.系统找不到指定的文件. 解 ...

  2. 常见错误:未能加载文件或程序集

    问题描述: 今天遇到一个挺怪的问题,采用了工厂模式后,出去找不到程序集的问题: 未能加载文件或程序集"Tianyige.SqlServerDAL"或它的某一个依赖项.系统找不到指定 ...

  3. 未能加载文件或程序集“XXX”或它的一个依赖项,试图加载格式不正确的程序...

    问题描述: 未能加载文件或程序集"XXX"或它的一个依赖项,试图加载格式不正确的程序 解决方法: 方法一:在vs的配置管理器中,把活动解决方案平台改为Any CPU就可以了 方法二 ...

  4. 未能加载文件或程序集“*****.dll”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。(异常来自HRESULT:0x80131040)

    未能加载文件或程序集"*****.dll"或它的某一个依赖项.找到的程序集清单定义与程序集引用不匹配.(异常来自HRESULT:0x80131040) 参考文章: (1)未能加载文 ...

  5. 未能加载文件或程序集“****”或它的某一个依赖项。试图加载格式不正确的程序。解决方案总结

    未能加载文件或程序集"****"或它的某一个依赖项.试图加载格式不正确的程序.解决方案总结 参考文章: (1)未能加载文件或程序集"****"或它的某一个依赖项 ...

  6. 未能加载文件或程序集“Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342...

    若本机的Oracle版本是64位系统,则在调用Oracle数据的时间报以下错误: [未能加载文件或程序集"Oracle.DataAccess, Version=2.112.1.0, Cult ...

  7. mysql core 文件_MySQL未能加载文件或程序集“Ubiety.Dns.Core”或它的某一个依赖项 问题的解决...

    在VS2019中使用Nuget的方式添加了最新的MySQL包 MySql.Data 8.0.19 ,默认添加了个Ubiety.Dns.Core,不知道有什么用,但是启动程序后就报错. "/& ...

  8. 错误提示“未能加载文件或程序集“Microsoft.Office.Interop.Owc11”,

    .NET错误提示: 未能加载文件或程序集"Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicK ...

  9. resx文件在X64位编译,提示“未能加载文件或程序集”的问题?

    原文:resx文件在X64位编译,提示"未能加载文件或程序集"的问题? resx文件在X64位编译,提示"未能加载文件或程序集"的问题? 解答: 错误现象如下 ...

最新文章

  1. clearcase 创建副本
  2. chemdraw怎么画拐弯的箭头_性感皮衣皮裤的质感服装该怎么画?
  3. NIO这样理解才够深入!
  4. Windows 容器
  5. linux下 apache启动、停止、重启命令
  6. Java基础知识之数组的初始化和基本操作
  7. MySQL 5.7.25 在Windows 7中安装的记录
  8. Baby Audio Smooth Operator for Mac(智能信号平衡器插件)
  9. 使用双向链表构建二叉树_LeetCode-109 有序链表转换二叉搜索树
  10. u盘固定盘符_Windows 下如何固定 U 盘的盘符?
  11. python AttributeError: 'module' object has no attribute 'dumps'解决办法
  12. Android 蓝牙AVRCP 专题 (1)----- 手机端设置绝对音量Set Absolute Volume
  13. python之scipy库简单操作
  14. 扫码枪 android EditText
  15. JS判断数组中是否存在某个值或者某个对象的值
  16. android 8 刷机教程视频教程,教你Android 8.0的刷机教程
  17. grpc服务认证实现方式
  18. Netty的深入浅出--79.Netty官方Reference Counted Objects文档说明
  19. python实现淘宝自动登录秒杀功能
  20. c语言编写一个简单的答题系统

热门文章

  1. oracle统计每个类别,Oracle统计分析函数集之一
  2. python查看数据集的维度、大小_Python数据分析 - numpy
  3. pcie数据反_PCIe事务层の详解(一)
  4. python写登录界面跳转至数据库操作_pycharm+jdango+python实现创建web工程并实现简单登陆...
  5. shiro-cas------本地配置cas为HTTPS登录
  6. 人脸对齐(二十一)--A Recurrent Encoder-Decoder Network for Sequential Face Alignment
  7. 系统学习机器学习之神经网络(五) --ART
  8. 孙鑫-MFC笔记三--绘图
  9. 嵌入式系统——软件设计
  10. android view moveto,android – cursor.moveToPosition(i)的速度有多快?