spring.net基本使用:控制反转和依赖注入

控制反转和依赖注入

概念

控制反转(IoC),它为相互依赖的组件提供抽象,将依赖(低层模块)对象的获得交给第三方(系统)来控制,即依赖对象不在被依赖模块的类中直接通过new来获取。

控制反转(IoC)一种重要的方式,就是将依赖对象的创建和绑定转移到被依赖对象类的外部来实现。
依赖注入(DI),它提供一种机制,将需要依赖(低层模块)对象的引用传递给被依赖(高层模块)对象。

基本操作和代码示例

工程文件结构如下

说明:

1. spring.xml和app.config中配置spring.net
2. Demo目录下为示例代码的类和接口

这里写图片描述

spring.xml中的配置:

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
  <description>An  example that demonstrates simple IoC features.</description>
  <!--object的name可以自定义,property中的属性name不能自定义-->
  <object name="DemoBase" type="SpringNetConsoleApp.Demo.DemoBase,SpringNetConsoleApp">
    <property name="ReturnValue" value="Jack"></property>
    <property name="Demo2" ref="Demo2"></property>
  </object>
  <object name="Demo2" type="SpringNetConsoleApp.Demo.Demo2,SpringNetConsoleApp">
    <property name="Demo2Property" value="123"></property>
  </object>
</objects>
  • 对象定义:

通过<objects/>节点的<object/>子节点来配置程序中用到的对象。

objecttype配置说明:type="Namespace.ClassName,AssemblyName"

  • 属性的注入:

通过<property/>节点配置属性,其中name不能自定义,必须跟代码中属性名相同。value指定属性的值,ref指向另一个对象

app.config中的配置:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <!--sprin.net configuration start-->
  <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>
  <spring>
    <context>
      <resource uri="config://spring/objects"/>
      <resource uri="file://spring.xml" />
    </context>
    <objects xmlns="http://www.springframework.net">
    </objects>
  </spring>
  <!--spring.net configuration end-->
</configuration>

<resource uri="file://spring.xml" />用于指定配置的文件位置。如果编译程序时报找不到xml的错误,可指定一下xml的输出目录,如下图:

这里写图片描述

参考

深入理解DIP、IoC、DI以及IoC容器

IoC和DI的理解

Spring.NET学习笔记——目录(原)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值