Unity是微软Patterns & Practices团队所开发的一个轻量级的,并且可扩展的依赖注入(Dependency Injection)容器,它支持常用的三种依赖注入方式:构造器注入(Constructor Injection)、属性注入(Property Injection),以及方法调用注入(Method Call Injection). Unity可以很好的支持Model-View-Presenter (MVP) pattern来做silverlight的开发。
可以在微软的开源站点http://unity.codeplex.com下载最新的发布版本和文档。
通过使用Unity,我们能轻松构建松耦合结构的程序,从而让整个程序框架变得清晰和易于维护。
ObjectBuilder
ObjectBuilder是一个可扩展的Application Block,同时也是Unity的基础。ObjectBuilder是“依赖注入的工具”,还有一种说法是“构建依赖注入容器的框架”。应该说ObjectBuilder是一个可配置的对象工厂。
详细可参考:http://blog.csdn.net/Code6421/archive/2006/09/25/1282139.aspx
具有如下的特性:
1. 它提供了创建(或者装配)对象实例的机制,而这些对象实例可能还包含了其它被依赖的对象实例。
2. Unity允许将预先配置的对象注入到类中,实现了inversion of control (IoC)的功能。在Unity中,支持constructor injection(构造器注入), property setter injection(属性设值注入)以及method call injection(方法注入)。ps:这里的方法注入与Martin Fowler定义的接口注入类似而稍有区别。
3. 支持容器的体系结构。一个容器可以有子容器,允许从子容器到父容器的对象定位查询。
4. 可以通过配置文件进行准备和配置容器。
5. 不会影响到类的定义(属性设值注入和方法注入除外),这也是轻量级容器的一个体现。
6. 支持自定义的容器扩展。
使用Unity,最基本步骤有三步:
1. 建立容器;
2. 将接口与类的映射注册到容器中;
3. 从容器中解析出正确的对象。
http://www.bianceng.cn/Programming/net/201007/18260.htm
http://www.cnblogs.com/kebixisimba/archive/2008/03/25/1121155.html