深入Unity 1.x依赖注入容器之四:依赖注入

Unity 是一个依赖注入容器,自然依赖注入是它最重要的功能。从以往的讨论来看,矛盾都集中于 Unity 侵入了依赖的对象,这可能是 Unity 在预览版的文档中没有说明,加上某个外国牛人的某篇文章造成的恶果。因为,Unity 同样可以通过配置文件支持非侵入式的依赖注入。本文将从使用 Attribute 和配置文件两个方面对 Unity 的依赖注入的支持进行阐述。

Unity 支持构造函数、属性和方法调用注入。

构造函数注入

构造函数注入包含了二种情况,一种是类仅有一个构造函数时,Unity 可以进行自动注入;另一种情况是,类包含多个构造函数时,必须使用 Attribute 或者配置文件指定注入时使用的构造函数。

假设现在有一个 Telephone 类,仅包含了一个带有 IDialer 类型的参数的构造函数。

如下所示:


那么,我们可以这样来使用:


此时,我们不需要对 Telephone 进行任何配置。

然后,再添加一个带有 string 类型参数的构造函数(注意,此构造函数没有实质用处),如下所示:

计算机系统">

时间: 2024-09-04 11:35:13

深入Unity 1.x依赖注入容器之四:依赖注入的相关文章

深入Unity 1.x依赖注入容器之三:获取对象

通过前二部分的学习,对象的获取已非常简单,在此对前面用过的对象获取方法进行总结 ,同时对还没有使用过的方法进行补充. Unity 容器中获取对象的方法也包括了泛型方法和对之对应的非泛型重载,在此,仅对泛型方法进行描述. 根据类型获取对象 我们使用方法 Resolve<T>( ) 来根据类型获取对象.这种方法是在前二部分使用最多的,用于获取注册的默认类型映射的对象.示例代码如下所示: 根据类型和名称获取对象 在此使用方法 Resolve<T>(string name) 来根据类型和名

深入Unity 1.x依赖注入容器之一:入门

Unity 是由微软开发的一个轻量级.可扩展的依赖注入(Dependency Injection, DI)容器,支持构造函数.属性和方法的依赖注入.所谓依赖的注入,即将程序开发过程中的对象与其所依赖的具体对象解耦,从一定程度上仅关注对所依赖对象的使用,却不管其具体对象是哪个类的实例:而真正的被依赖对象在运行时由容器注入.本质上,它就是一个对象工厂和对象管理器.更详细的信息,请参见<IoC 容器和Dependency Injection 模式>. Unity 适用于可扩展.可插接的应用程序的开发

Unity(六):使用场景Ⅲ:用于依赖注入(上)

有关依赖注入 什么是依赖注入,我想这个问题我在这里说就不大合适了,所以还是推荐一下大师的文章.之前的文章也提到过,"Martin Fowler的Inversion of Control Containers and the Dependency Injection pattern 是不得不推荐的,当然,如果读起来比较费劲的话,吕震宇的你真的了解Ioc与AOP吗?系列也是不错的参考". 这里要多说一句的是,依赖注入(Dependency Injection)和控制反转(Inversion

Composite Application Guidance for WPF(5)——依赖注入容器

依赖注入容器和Prism的基础服务已经在本系列随笔中提到过很多次,今天将其分离出来专门说一说 1, 为什么要使用依赖注入容器 我们知道, 在Composite Application中各个模块之间是松耦合的关系, 也就是在设计的时候尽可能地减少模块间的依赖, 但无论如何从业务角度讲, 他们之间总还是要相互通信与合作的. 所以依赖注入容器在这其中扮演了一个桥梁般的角色. 比如当创建某一个组件实例的时候, 其依赖于另外的一个组件或服务, 此时依赖注入容器会将其需要的信息"注入(Injection)&

《Spring技术内幕》——2.4节IoC容器的依赖注入

2.4 IoC容器的依赖注入 上面对IoC容器的初始化过程进行了详细的分析,这个初始化过程完成的主要工作是在IoC容器中建立BeanDefinition数据映射.在此过程中并没有看到IoC容器对Bean依赖关系进行注入,接下来分析一下IoC容器是怎样对Bean的依赖关系进行注入的. 假设当前IoC容器已经载入了用户定义的Bean信息,开始分析依赖注入的原理.首先,注意到依赖注入的过程是用户第一次向IoC容器索要Bean时触发的,当然也有例外,也就是我们可以在BeanDefinition信息中通过

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(6)-Unity 2.x依赖注入by运行时注入[附源码]

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(6)-Unity 2.x依赖注入by运行时注入[附源码] Unity 2.x依赖注入(控制反转)IOC,对于没有大项目经验的童鞋来说,这些都是陌生的名词,甚至有些同学还停留在拉控件的阶段. 您可以访问http://unity.codeplex.com/releases得到最新版本的Unity现在.当然,如果您在您的visual studio 中安装了Nuget 包管理器,你可以直接在Nuget中获取到最

ASP.NET Core中如影随形的”依赖注入”[下]: 历数依赖注入的N种玩法

在对ASP.NET Core管道中关于依赖注入的两个核心对象(ServiceCollection和ServiceProvider)有了足够的认识之后,我们将关注的目光转移到编程层面.在ASP.NET Core应用中基于依赖注入的编程主要涉及到两个方面,它们分别是将服务注册到ServiceCollection中,和采用注入的方式利用ServiceProvider提供我们所需的服务.我们先来讨论ASP.NET Core应用中如何进行服务注册.[本文已经同步到<ASP.NET Core框架揭秘>之中

spring 什么是依赖对象???? 什么是依赖注入???? 他们有什么关系????

问题描述 spring什么是依赖对象????什么是依赖注入????他们有什么关系????

Spring——setter方式注入和构造函数方式注入

     先写一个比较常见的结构:            其中UserDao跟UserManagerImpl是层与层之间的接口.       下面用这些类来演示setter方式注入跟构造函数注入来解决Manager层注入Dao问题. 一,setter方式注入         首先要在Manager实现类中定义Dao的私有成员变量,并为此变量添加set方法,注入的时候会自动调用这个set方法对成员变量进行赋值.               之后在配置文件中定义依赖关系:            <b