一点一点学架构(四)—Spring.NET错误Cannot Resolve Type……
背景
在搭建完项目框架之后,当我利用单元測试来測一条线时。出现了下面错误:
Cannot resolve type[……]for object with name ‘ButtonBll’ defined in config.
看到问题描写叙述之后首先去检查了自己配置文件里的配置:
<!--B层实现注入-->
<object id="ButtonBll" type="ITOO.UIQueryProperties.BLL.ButtonBll,ITOO.UIQueryProperties.BLL" singleton="false"/>
细致核对了类名,程序集名称。确定配置没有问题。
这是哪里的问题呢?
原因分析
这是最初版本号的架构图
图中红色勾出来的地方是三个工厂,这里用到了设计模式中的抽象工厂+反射+配置文件。
架构图演变
去掉了三个工厂,取而代之的是Spring.NET中的IOC容器。我们知道。IOC容器就像是一个对象制造工厂。
那么说这些有什么用呢?
还记得在用抽象工厂+反射+配置文件时。有个常常出的错误吗?
未能载入文件或程序集“DAL”或它的某一个依赖项。系统找不到指定文件。
当时的解决方式是将DAL层的生成路径改到UI层的bin\Debug目录下。详细内容可參考《应用反射+配置文件+抽象工厂时出现的错误和原因分析 》
所以,尽管这两次错误的提示不一样,可是根源还是一样的:没有把实现层类库的生成路径改到应用程序启动层。
解决
这里须要我们把BLL层和DAL层的生成路径都改到 WCFService层的bin\Debug文件下。(假设要进行单元測试,单元測试层引用的dll文件都来自于WCFService层bin\Debug中的文件就可以)
总结
前后两次问题出如今不同的情景下,形式变了,可是道理没变。不管是学习还是解决这个问题,我们都应该学会举一反三。
一点一点学架构(四)—Spring.NET错误Cannot Resolve Type……的更多相关文章
- 一点一点看JDK源码(四)java.util.ArrayList 中篇
一点一点看JDK源码(四)java.util.ArrayList 中篇 liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JDK源码(〇) 1.综述 在前篇中 ...
- 一点一点学ASP.NET系列
转自:http://www.cnblogs.com/stwyhm/archive/2006/08/10/473075.html 做开发近两年了,自认为自己还算是个知道要上进的人,每天不停地学习,不停地 ...
- 一点一点学写Makefile(3)-增加第三方库和头文件
我们在写代码的时候不一定都是有自己来完成,一个工程中会大量使用一些比较优秀的动态库.静态库等,我们在使用这些库完成所有的代码后,需要在编译的时候将这些库使用的头文件添加到我们的工程上,将他的库文件也添 ...
- 一点一点看JDK源码(〇)
一点一点看JDK源码(〇) liuyuhang原创,未经允许进制转载 写在前面: 几乎所有的大神都会强调看源码,也强调源码的重要性: 但是如何看源码,源码看什么?看了什么用?看了怎么用? 困扰很多人, ...
- SaaS 系统架构,Spring Boot 动态数据源实现!
这段时候在准备从零开始做一套SaaS系统,之前的经验都是开发单数据库系统并没有接触过SaaS系统,所以接到这个任务的时候也有也些头疼,不过办法部比困难多,难得的机会. 在网上找了很多关于SaaS的资料 ...
- 一点一点看JDK源码(一)Collection体系概览
一点一点看JDK源码(一)Collection体系概览 liuyuhang原创,未经允许进制转载 本文举例使用的是JDK8的API 目录:一点一点看JDK源码(〇) 1.综述 Collection为集 ...
- 一点一点看JDK源码(三)java.util.ArrayList 前偏
一点一点看JDK源码(三)java.util.ArrayList liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JDK源码(〇) 1.综述 ArrayLi ...
- 一点一点看JDK源码(五)java.util.ArrayList 后篇之Spliterator多线程遍历
一点一点看JDK源码(五)java.util.ArrayList 后篇之Spliterator多线程遍历 liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看J ...
- 一点一点看JDK源码(六)java.util.LinkedList前篇之链表概要
一点一点看JDK源码(六)java.util.LinkedList前篇之链表概要 liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JDK源码(〇) 1.什么 ...
随机推荐
- 网络 - TCP/IP四层模型,面向生产
TCP.IP四层模型 (网络接口层,网际互联层,传输层,应用层.) (左边是车模,右边是实际生产的车.) 物理层,负责0101比特流传递. 数据链路层,MAC地址负责局域网,内网通信.MAC地址,由4 ...
- [POJ 1639] Picnic Planning
[题目链接] http://poj.org/problem?id=1639 [算法] 首先,我们可以用深度优先遍历求出1号节点去除后有几个联通块 设共有T个联通块,若T > K则无解,否则 : ...
- 【POJ 1222】 EXTENDED LIGHTS OUT
[题目链接] http://poj.org/problem?id=1222 [算法] 列出异或方程组,用高斯消元求解即可 [代码] #include <algorithm> #includ ...
- C++ 共用体 枚举类型 所有
一.共用体类型 1.共用体的概念. 有时候需要将几种不同类型的变量存放到同一段内存单元中.例如有三个变量,他们的字节数不同,但是都从同一个地址开始存放.也就是用了覆盖技术,几个变量互相覆盖.这种使几个 ...
- Codeforces Round #198 (Div. 2)A,B题解
Codeforces Round #198 (Div. 2) 昨天看到奋斗群的群赛,好奇的去做了一下, 大概花了3个小时Ak,我大概可以退役了吧 那下面来稍微总结一下 A. The Wall Iahu ...
- Spark Scala语言学习系列之完成HelloWorld程序(三种方式)
三种方式完成HelloWorld程序 分别采用在REPL,命令行(scala脚本)和Eclipse下运行hello world. 一.Scala REPL. windows下安装好scala后,直接C ...
- 4) 十分钟学会android--建立第一个APP,启动另一个Activity
在完成上一课(建立简单的用户界面)后,我们已经拥有了显示一个activity(一个界面)的app(应用),该activity包含了一个文本字段和一个按钮.在这节课中,我们将添加一些新的代码到MyAct ...
- 开源作品-PHP写的JS和CSS文件压缩利器(单文件绿色版)-SuMinify_PHP_1_5
前言: 网站项目需要引用外部文件以减小加载流量,而且第一次加载外部资源文件后,其他同域名的页面如果引用相同的地址,可以利用浏览器缓存直接读取本地缓存资源文件,而不需要每个页面都下载相同的外部资源文件. ...
- C++调用Matlab 注意事项
前言:脑残的使用了C++调用Matlab,没想到Matlab的使用者的智商还真TMD不一般, 竟然有这样的 plot(x_Abnorm_index,Vec2(Abnorm_index),'sb','l ...
- bootstrap3-dialog:更强大、更灵活的模态框
用过bootstrap框架的同学们都知道,bootstrap自带的模态框用起来很不灵活,可谓鸡肋的很.但nakupanda开源作者封装了一个更强大.更灵活的模态框——bootstrap3-dialog ...