【原】(一)Unity 2.0 IOC容器入门教程
2010-05-22 10:03 bugfly 阅读(5261) 评论(20) 编辑 收藏 举报写这篇入门教程的原因是,发觉国内很少有介绍Unity 2.0的文章,大部分是介绍Unity 1.0的,相对比较旧了,而2.0和1.0存在多多少少的差别,如一些配置符在2.0被除去了,要学习2.0就只能从英文的网站获得,基于能更好地带大家入门,所以就写一篇简单的教程。
教程流程
(1)IOC介绍。
(2)布局项目。
(3)安装Unity 2.0、引入到项目中。
(4)配置信息。
(5)加载容器。
(6)项目使用。
(7)结语。
一、IOC介绍。
IOC(Inversion of Control)
中文译为控制反转
又称为“依赖注入”(DI =Dependence Injection)
IOC的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起。
其原理是基于OO设计原则的The Hollywood Principle:Don't call us, we'll call you(别找我,我会来找你的)。也就是说,所有的组件都是被动的(Passive),所有的组件初始化和调用都由容器负责。组件处在一个容器当中,由容器负责管理。
简单的来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
二、布局项目。
由于我比较爱好web开发,所以我就建一个WebForm的Deom项目来演示,布局结构很简单,主要是为了大家能更好地理解这个使用流程。
项目总体架构图
Default.aspx页面
IPeople接口
IWeapon接口
具体的Gun类
具体的Sword类
具体的ChinesePeople类
具体的BackPeople类
三、安装Unity 2.0、引入到项目中。
到微软下载Unity 2.0或者可以去其他提供下载的网站下载,安装过程我就不截图解释了。把所需要的库添加到项目下,我们需要的是Microsoft.Practices.Unity和Microsoft.Practices.Unity.Configuration两个库,右击添加引用。
Untity 2.0下载http://www.microsoft.com/downloads/details.aspx?FamilyId=2d24f179-e0a6-49d7-89c4-5b67d939f91b&displaylang=en
四、配置信息。
大致的配置我直接上图,再一一简要解释。
这里要注意的是,Version=版本一定要和你下载的库的版本一致,不然是不能成功生成容器的。我使用的是2.0.414.0版本的库,所以这里的Version=2.0.414.0 一定要看清楚!
这里主要作用就绑定了具体对象的引用关系,也是IOC容器的作用,把变化隔离出程序,转由外部文件负责,降低了程序的维护成本。提示:这段配置我是放在web.config里面,你用XML配置也可以,都一样。
而具体的标签作用我就不多解释了,2.0的标签已经做到很人性化,如果实在不懂,就请耐心研究帮助文档,不过暂时没有发现有中文版。
Unity 2.0 英文帮助文档下载地址:http://unity.codeplex.com/releases/view/31277
五、加载容器。
添加Global.asax文件,具体里面的内容如下截图。
六、项目使用。
具体code-behind代码Default.aspx.cs
具体运行Default.aspx页面效果
点击了中国人按钮响应效果
点击了黑人按钮响应的效果
七、结语。
希望这个简单的教程能对你有所帮助,教程的源码我有保留,有需要的朋友可以HI我,或者留言,留下邮箱也OK。最后我希望能结识热爱交流技术的朋友,本人创建的技术交流群:9202507 欢迎你的加入!
作者:桀骜的灵魂
出处:http://www.cnblogs.com/HuntSoul/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。