深入 Unity 1.x 依赖注入容器之三:获取对象
2008-05-23 13:33
423 查看
原文链接:http://www.doriandeng.cn/archives/99.html
通过前二部分的学习,对象的获取已非常简单,在此对前面用过的对象获取方法进行总结 ,同时对还没有使用过的方法进行补充。
Unity 容器中获取对象的方法也包括了泛型方法和对之对应的非泛型重载,在此,仅对泛型方法进行描述。
根据类型获取对象
我们使用方法 Resolve<T>( ) 来根据类型获取对象。这种方法是在前二部分使用最多的,用于获取注册的默认类型映射的对象。示例代码如下所示:
根据类型和名称获取对象
在此使用方法 Resolve<T>(string name) 来根据类型和名称获取对象。此方法用于获取注册了命名类型映射的对象。示例代码如下所示:
获取指定类型的所有对象
要获取指定类型的所有对象,我们可以使用 Unity 中的 ResolveAll<T>( ) 方法。比如,在获取系统中已注册的所有插件时,这将非常有用。
注意:此方法仅能获取命名类型注册映射的对象。
示例代码如下:
将依赖注入已有的对象
在现实环境中,我们经常无法控制某些对象的创建过程,如 ASP.NET 的页面,但已需要将依赖注入到这些对象。在这种情况下,我们就可以使用 BuildUp<T>(T existing) 方法对应用指定类型的依赖。
我们用一个简单的方法来模拟这种情况:
从上面的代码中我们可以看到,假如 tel 是在方法外被创建的话,通过使用 BuildUp 方法后,依赖就被自动应用到了 tel 对象上。
注意:BuildUp 方法仅能适用属性注入和方法调用注入,因为它不执行请求对象的构造函数。
小结
在本文中,我们简单描述了对象获取的几种方法,可以看出,使用 Unity 容器在注册类型映射后,对象的获取是非常简单的。
源代码下载
look-into-unity-1-1-resolveobject.zip
希望对您有所帮助!
邓明
理想&美人
通过前二部分的学习,对象的获取已非常简单,在此对前面用过的对象获取方法进行总结 ,同时对还没有使用过的方法进行补充。
Unity 容器中获取对象的方法也包括了泛型方法和对之对应的非泛型重载,在此,仅对泛型方法进行描述。
根据类型获取对象
我们使用方法 Resolve<T>( ) 来根据类型获取对象。这种方法是在前二部分使用最多的,用于获取注册的默认类型映射的对象。示例代码如下所示:
根据类型和名称获取对象
在此使用方法 Resolve<T>(string name) 来根据类型和名称获取对象。此方法用于获取注册了命名类型映射的对象。示例代码如下所示:
获取指定类型的所有对象
要获取指定类型的所有对象,我们可以使用 Unity 中的 ResolveAll<T>( ) 方法。比如,在获取系统中已注册的所有插件时,这将非常有用。
注意:此方法仅能获取命名类型注册映射的对象。
示例代码如下:
将依赖注入已有的对象
在现实环境中,我们经常无法控制某些对象的创建过程,如 ASP.NET 的页面,但已需要将依赖注入到这些对象。在这种情况下,我们就可以使用 BuildUp<T>(T existing) 方法对应用指定类型的依赖。
我们用一个简单的方法来模拟这种情况:
从上面的代码中我们可以看到,假如 tel 是在方法外被创建的话,通过使用 BuildUp 方法后,依赖就被自动应用到了 tel 对象上。
注意:BuildUp 方法仅能适用属性注入和方法调用注入,因为它不执行请求对象的构造函数。
小结
在本文中,我们简单描述了对象获取的几种方法,可以看出,使用 Unity 容器在注册类型映射后,对象的获取是非常简单的。
源代码下载
look-into-unity-1-1-resolveobject.zip
希望对您有所帮助!
邓明
理想&美人
相关文章推荐
- 深入 Unity 1.x 依赖注入容器之三:获取对象
- 关于微软企业库中依赖注入容器Unity两种生成对象的实现u
- 深入 Unity 1.x 依赖注入容器之一:入门
- 关于微软企业库中依赖注入容器Unity两种生成对象的实现
- 深入 Unity 1.x 依赖注入容器之二:初始化 Unity
- (转载 )深入Unity 1.x依赖注入容器之二:初始化 Unity
- 深入 Unity 1.x 依赖注入容器之二:初始化 Unity
- 深入 Unity 1.x 依赖注入容器之四:依赖注入
- 深入 Unity 1.x 依赖注入容器之一:入门
- 深入 Unity 1.x 依赖注入容器之四:依赖注入
- Laravel 服务容器实例教程 —— 深入理解控制反转(IoC)和依赖注入(DI)
- Laravel 服务容器实例教程 —— 深入理解控制反转(IoC)和依赖注入(DI)
- ASP.NET Web Application 中使用 Unity 依赖注入容器
- Entity Framework 实体框架的形成之旅--利用Unity对象依赖注入优化实体框架(2)
- IOC容器—Unity深度解析(三)【依赖注入】
- Struts2容器之Container与ContainerImpl深入剖析及其Struts2依赖注入的原理剖析
- Laravel 服务容器实例教程 —— 深入理解控制反转(IoC)和依赖注入(DI)
- 依赖注入容器Unity Application Block快速入门
- 依赖注入容器Unity介绍
- Laravel 服务容器实例教程 —— 深入理解控制反转(IoC)和依赖注入(DI)