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容器等名词时,有没有 ...
随机推荐
- 用grunt搭建自动化的web前端开发环境
用grunt搭建自动化的web前端开发环境 jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用! 1. 前言 各位web前端开发 ...
- 大数据系列修炼-Scala课程04
Scala中继承实现:超类的构造.字段重写.方法重写 关于超类的构建:超类可以在子类没有位置的限制,可以在子类中调用父类的方法 类中字段重写:在重写字段前面加一个override就可以重新赋值 类中方 ...
- UVA11627-Slalom(二分法)
题目链接 题意:有n个宽为w的旗门,第i个旗门左端的坐标为(xi, yi),对于全部1 <= i < n满足yi < y(i+1).你有s双滑雪板,第j双的速度为sj(垂直向下的速度 ...
- NEFUOJ 500 二分法+最大流量
http://acm.nefu.edu.cn/JudgeOnline/problemshow.php?problem_id=500 description 在这个信息化的时代.网购成为了最流行的购物方 ...
- __doPostBack 未生成
事情是这样的: asp.net 项目 采用了 DevExpress 第三方控件,然后 网站架设在 win2003 服务器上面. 本地测试 都是 OK的,然而 ,在服务器 上面 却出现了 __doP ...
- 概率图形模型(PGM)学习笔记(一)动机和概述
在本文中,基于Daphne Koller完成课程. PDM(ProbabilisticGraphiccal Models) 称为概率图模型. 以下分别说明3个词相应的意义. 概率 -给出了不确定性的明 ...
- WebForm MapPageRoute 路由配置
WebForm MapPageRoute 路由配置 MapPageRoute 应该是 ASP.NET 4.0 中的东西,但现在我是第一次使用它,使用场景是:MVC 混合使用 WebForm,然后对 ...
- 在Mac OS X 10.8中配置Apache+PHP+MySQL
在Mac OS X 10.8中配置Apache+PHP+MySQL的内容包括: 配置Apache 配置PHP 安装MySQL 配置PHPAdmin 设置数据库默认字符集 一. 配置Apache 1. ...
- 菜鸟进阶Android Touch事件传递(四)
尊重他人劳动成果,转载请说明出处:http://blog.csdn.net/bingospunky/article/details/44343477 在该系列文章第四篇.我准备介绍一下viewpage ...
- 继续推荐几款VisualStudio的插件
原文:继续推荐几款VisualStudio的插件 继前几天推荐了一款转换vs插件的插件后,借着安装VS2013之际,把我比较喜欢的几个插件继续推荐一下. C# Outline 2013 2013 C# ...