IOC and DI
Spring.Net 技术简介 IOC and DI
一 简单介绍
二 创建对象,以及设置属性


- <? xml version =" 1.0 " encoding =" utf-8 " ?>
- < configuration>
- < configSections>
- < sectionGroup name = "spring " >
- <!-- 这下面有context和object在下面都有对象的标签 -->
- < section name = "context " type = "Spring.Context.Support.ContextHandler, Spring.Core " />
- < section name = "objects " type = "Spring.Context.Support.DefaultSectionHandler, Spring.Core " />
- </ sectionGroup >
- </ configSections>
- < spring>
- <!-- Spring.Net对象容器的配置 -->
- < context >
- <!-- 容器的所有的对象在哪里,这里用uri说明地址 -->
- < resource uri = "config://spring/objects " />
- <!-- 可以使用外部xml文件 -->
- </ context >
- <!-- objects:配置的容器里面的对象 -->
- < objects xmlns = "http://www.springframework.net " >
- < description >An example that demonstrates simple IoC features. </ description>
- <!-- name最好用类名,type第一个是类的全程加上程序集,后面一个是程序集名称 -->
- < object name = "UserInfoDal " type = "SpringNetDemo.UserInfoDal, SpringNetDemo " >
- <!-- 在这里是设置对象的属性,将Name的值设置成ctt -->
- < property name = "Name " value = "ctt " />
- </ object >
- </ objects >
- </ spring>
- </ configuration>


- public class UserInfoDal : IUserInfoDal
- {
- public string Name { get; set; }
- public void Show()
- {
- Console .WriteLine("zjh and "+Name );
- }
- }


- class Program
- {
- static void Main(string [] args)
- {
- //IApplicationContext是Spring里面的一个超类,主要操作类
- IApplicationContext ctx = ContextRegistry .GetContext();
- //GetObject从配置文件中读取信息后,反射产生相应的对象,用as强转成对象的接口
- IUserInfoDal userInfoDal = ctx.GetObject("UserInfoDal" ) as IUserInfoDal;
- //轻松加愉快,就这样出来了
- userInfoDal.Show();
- Console .ReadKey();
- }
- }

三 创建复杂属性的设置

- public class UserInfoService
- {
- public IUserInfoDal UserInfoDal { get ; set; }
- public void Show()
- {
- UserInfoDal.Show();
- Console .WriteLine("it is service" );
- }
- }


- <? xml version =" 1.0 " encoding =" utf-8 " ?>
- < configuration>
- < configSections>
- < sectionGroup name = "spring " >
- <!-- 这下面有context和object在下面都有对象的标签 -->
- < section name = "context " type = "Spring.Context.Support.ContextHandler, Spring.Core " />
- < section name = "objects " type = "Spring.Context.Support.DefaultSectionHandler, Spring.Core " />
- </ sectionGroup >
- </ configSections>
- < spring>
- <!-- Spring.Net对象容器的配置 -->
- < context >
- <!-- 容器的所有的对象在哪里,这里用uri说明 -->
- < resource uri = "config://spring/objects " />
- <!-- 可以使用外部xml文件 -->
- </ context >
- <!-- objects:配置的容器里面的对象 -->
- < objects xmlns = "http://www.springframework.net " >
- < description >An example that demonstrates simple IoC features. </ description>
- <!-- name最好用类名,type第一个是类的全程加上程序集,后面一个是程序集名称 -->
- < object name = "UserInfoDal " type = "SprintNetDemo.UserInfoDal, SprintNetDemo " >
- <!-- 在这里是设置对象的属性,将Name的值设置成ctt -->
- < property name = "Name " value = "ctt " />
- </ object >
- <!-- 在这里配置UserInfoService对象 -->
- < object name = "UserInfoService " type = "SprintNetDemo.UserInfoService, SprintNetDemo " >
- <!-- 在这里配置UserInfoService对象的UserInfoDal属性,执行上面产生的对象 -->
- < property name = "UserInfoDal " ref = "UserInfoDal " />
- </ object >
- </ objects >
- </ spring>
- </ configuration>


- static void Main( string[] args)
- {
- //IApplicationContext是Spring里面的一个超类,主要操作类
- IApplicationContext ctx = ContextRegistry .GetContext();
- //创建出对象,主要在配置文件中对UserInfoService的UserInfoDal属性进行复制
- UserInfoService userInfoService = ctx.GetObject( "UserInfoService" ) as UserInfoService;
- userInfoService.Show();
- Console.ReadKey();
- }

it is service
四 总结
IOC and DI的更多相关文章
- 深入理解DIP、IoC、DI以及IoC容器
摘要 面向对象设计(OOD)有助于我们开发出高性能.易扩展以及易复用的程序.其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC.DI以及Ioc容器等概念.通过本文我们将一起学 ...
- 初识Spring框架实现IOC和DI(依赖注入)
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的, IoC是 ...
- 对IOC和DI以及AOP的理解
为了理解Spring的IoC与DI从网上查了很多资料,作为初学者,下面的描述应该是最详细,最易理解的方式了. 首先想说说IoC(Inversion of Control,控制倒转).这是spring的 ...
- Spring4学习笔记1-HelloWorld与IOC和DI概述
1.安装环境 1.1安装eclipse,jdk 1.1安装Spring tool suite(非必要项) 2.spring HelloWorld 2.1 需要的jar包(spring官网下载:http ...
- IoC和DI的理解
1 概述 当我们想闭上眼睛想如何让我们的软件更加可用可维护时,我们总能想到一个词:松耦合.在这篇文章中,主要讲述了模块间存在的依赖关系,但这种依赖关系违背了依赖倒置原则.在这之后,我们将讨论一种解除软 ...
- Spring控制反转与依赖注入(IOC、DI)
IOC: 反转控制 Inverse Of Control DI:依赖注入 Dependency Injection 目的:完成程序的解耦合 解释:在应用系统的开发过程中,有spring负责对象的创 ...
- [原创]java WEB学习笔记97:Spring学习---Spring 中的 Bean 配置:IOC 和 DI
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 对依赖倒置原则(DIP)及Ioc、DI、Ioc容器的一些理解
1.概述 所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体.简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模 ...
- 深入理解DIP、IoC、DI以及IoC容器(转)
深入理解DIP.IoC.DI以及IoC容器 摘要 面向对象设计(OOD)有助于我们开发出高性能.易扩展以及易复用的程序.其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC.D ...
- 【转】深入理解DIP、IoC、DI以及IoC容器
原文链接:http://www.cnblogs.com/liuhaorain/p/3747470.html 前言 对于大部分小菜来说,当听到大牛们高谈DIP.IoC.DI以及IoC容器等名词时,有没有 ...
随机推荐
- Android物业动画研究(Property Animation)彻底解决具体解释
前p=1959">Android物业动画研究(Property Animation)全然解析具体解释上已经基本展示了属性动画的核心使用方法: ObjectAnimator实现动画 ...
- UML之轻松入门(2)-掌握Junit,让我们的开发更高效
使用UML不仅能够形象化的表达我们的程序思想,并且能够帮助我们提高程序的质量.一个杂乱无章的程序让维护者望而生畏,其成本也可想而知.在面向程序设计(OOD)中有5条原则是帮助我们设计一个高效 ...
- UVA 10139 Factovisors(数论)
Factovisors The factorial function, n! is defined thus for n a non-negative integer: 0! = 1 n! = n * ...
- Yii Framework2.0开发教程(10)配合mysql数据库实现用户登录
1.首先在mysql创建一个存用户的表格 create table test_user ( user_id bigint(20) unsigned not null auto_increment co ...
- jquery.validate 验证(支持前台js验证通过,然后ajax后台数据校验)二
jquery.validate 为啥 源码 里面 规定 dataType: "json" 呢 因为 他配套的 是 messages 下面 的 remote 属性 验证失 ...
- 关于android中sqllite对时间的操作
sql 中有时间的类型,date,time,datetime,方便关于记录的维护,下面一个demo演示怎么在每条记录中默认增加时间 源码下载地址 http://www.codes51.com/code ...
- SALT 加密
大家都知道,MD5加密是不可逆.但事实上,我们通常值的MD5算法.黑客的眼下破解率相对较高.也有非常多站点上干脆就提供批量解密MD5的服务,当然是收费的.http://www.xmd5.org.这里提 ...
- Android NDK进入发展
使用互联网有很多javah命令生成一个头文件来完成JNI写,但事实上ADT集成NDK后.点点鼠标就可以了,网上的介绍是非常小懒的方法,在这里,我们主要谈论的懒惰JNI发展. 为ADT组态NDK.请个人 ...
- C# 编译器选项 /platform(指定输出平台)32位程序运行到x64平台的问题
如果说你编译的exe运行时报错: “尝试读取或写入受保护的内存.这通常指示其他内存已损坏” 这很有可能是你是以非托管的方式错误地引用了64位的API中去. 为什么会这样? 那你就要考虑VS的编译器选项 ...
- Gimp教程:制作彩色的网站横幅
效果图: Step1.新建900x200的透明图层 Step2.点选画笔工具,在左下方的设置界面进行如下: 设置画笔,动态,颜色,勾选应用抖动,然后试着在图层上画一画,调节一下画笔大小,相信你能作出如 ...