码迷,mamicode.com
首页 > 编程语言 > 详细

Spring.Net-DI依赖注入和Ioc控制反转

时间:2015-06-26 23:42:02      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

Spring.Core作为整个Spring框架的基础,实现了依赖注入的功能。Spring框架的其它模块都要依赖或扩展该模块。

   IObjectFactory接口,该接口实现了工厂模式,使用它可以帮我们创建对象,与具体的程序逻辑解耦。

   IApplicationContext是IObjectFactory的扩展,增加了许多企业级的功能,包括使用资源文件进行文本本地化,事件传播,资源装载等等。

Spring.Net的配置

   使用Spring.Net创建对象,需要在程序配置文件中配置
   1:配置spring.Core的核心处理类型

    在configSections节点中新增Spring的sectionGroup节点,申明Spring.Net处理的类型

<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core" />
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
</sectionGroup>
</configSections>

  2:配置Spring框架如何创建对象的spring节点

     spring定义了Spring.Net框架如何创建对象,Spring.Net框架使用这些配置信息,创建对象的。
     每一个object节点定义了一个类型创建的配置信息,type属性中第一个参数是类型的完整名称,第二个参数是类型所在的dll名称
     可以把spring节点中的objects节点单独放入另外一个Xml中

 <spring>
    
    <context>
      <!--<resource uri="assembly://SpringNetStudy.Control/SpringNetStudy.Control/Objects.xml" />-->
      <resource uri="config://spring/objects" />      
    </context>

    <objects xmlns="http://www.springframework.net">
      <!-- Objects节点可以移动到其它地方-->
      <description>一个简单的控制反转例子</description>
      <object id="PersonDao" type="SpringNetStudy.Control.PersonDao, SpringNetStudy.Control" />
    </objects>
    
  </spring>

Spring.Net创建对象

1             IApplicationContext ctx = ContextRegistry.GetContext();
2             IObjectFactory objectFactory = (IApplicationContext)ctx;
3 
4             //IPersonDao personDao = ctx.GetObject("PersonDao") as IPersonDao;
5             IPersonDao personDao = objectFactory.GetObject("PersonDao") as IPersonDao;
6             personDao.Save();

     创建IApplicationContext接口,使用该接口的GetObject()方法,其参数就是配置文件中的object节点的id属性值,依据type属性值,创建对象。返回object类型
     IApplicationContext是IObjectFactory的扩展,可以将IApplicationContext转换成IObjectFactory接口,调用其GetObject()方法。

Spring.Net-DI依赖注入和Ioc控制反转

标签:

原文地址:http://www.cnblogs.com/guichi/p/4603388.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!