Spring.NET依赖注入框架学习---实例化容器常用方法

本篇学习实例化Spring.NET容器的俩种方式

1、通过XmlObjectFactory创建一个Spring.NET容器

IResource input = new FileSystemResource ("objects.xml");
IObjectFactory factory = new XmlObjectFactory(input);

这样就可以通过factory的GetObject(“objectName”);获取这个对象

2、通过IApplicationContext创建一个Spring.NET容器

IApplicationContext ctx = ContextRegistry.GetContext();

这样就可以通过IApplicationContext的GetObject(“objectName”);获取这个对象

程序例子

例子代码:Person.cs

namespace Spring.NET01
{
public class Person
{
public Person()
{ }
~Person()
{ }
public void print()
{
Console.WriteLine("我是一个Person对象");
}
}
}

App.config文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<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>
</context> <objects xmlns="http://www.springframework.net"> <!--一个person对象-->
<object id="person1" type="Spring.NET01.Person,Spring.NET01"> </object>
</objects> </spring>
</configuration>

添加objects.xml  其中objects 的属性值必须加上

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.net
http://www.springframework.net/xsd/spring-objects.xsd">
<object id="person2" type="Spring.NET01.Person,Spring.NET01">
</object>
</objects>

测试代码:

 class Program
{
static void Main(string[] args)
{
//普通对象创建
Console.WriteLine("--------普通对象创建方法--------");
Person person = new Person();
person.print(); //通过Spring.NET ioc IApplicationContext注入对象
Console.WriteLine("--------IApplicationContext方法--------");
IApplicationContext content = ContextRegistry.GetContext();
Person bennanhai = (Person)content.GetObject("person1");
bennanhai.print(); //通过Spring.NET ioc XmlObjectFactory注入对象
Console.WriteLine("--------XmlObjectFactory方法--------");
IResource input = new FileSystemResource("objects.xml");
IObjectFactory factory = new XmlObjectFactory(input);
Person bennanhai2 = (Person)factory.GetObject("person2");
bennanhai2.print();
Console.Read();
}
}

运行结果

源代码工程下载

Spring.NET依赖注入框架学习--实例化容器常用方法的更多相关文章

  1. Spring.NET依赖注入框架学习--简单对象注入

    Spring.NET依赖注入框架学习--简单对象注入 在前面的俩篇中讲解了依赖注入的概念以及Spring.NET框架的核心模块介绍,今天就要看看怎么来使用Spring.NET实现一个简单的对象注入 常 ...

  2. Spring.NET依赖注入框架学习--简介

    Spring.NET依赖注入框架学习--Spring.NET简介 概述 Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序.它提供了很多方面的功能,比如依赖注入. ...

  3. Spring.NET依赖注入框架学习--入门

    Spring.NET依赖注入框架学习--入门 在学些Spring.net框架之前,有必要先脑补一点知识,比如什么是依赖注入?IOC又是什么?控制反转又是什么意思?它们与Spring.net又有什么关系 ...

  4. Spring.NET依赖注入框架学习-- 泛型对象的创建和使用

    Spring.NET依赖注入框架学习-- 泛型对象的创建和使用 泛型对象的创建方法和普通对象是一样的. 通过构造器创建泛型对象 下面是一个泛型类的代码: namespace GenericsPlay ...

  5. 在ABAP里模拟实现Java Spring的依赖注入

    Dependency Injection- 依赖注入,在Java Spring框架中有着广泛地应用.通过依赖注入,我们不必在应用代码里繁琐地初始化依赖的资源,非常方便. 那么ABAP能否从语言层面上也 ...

  6. 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之九 || 依赖注入IoC学习 + AOP界面编程初探

    更新 1.如果看不懂本文,或者比较困难,先别着急问问题,我单写了一个关于依赖注入的小Demo,可以下载看看,多思考思考注入的原理: https://github.com/anjoy8/BlogArti ...

  7. Z从壹开始前后端分离【 .NET Core2.2/3.0 +Vue2.0 】框架之九 || 依赖注入IoC学习 + AOP界面编程初探

    本文梯子 本文3.0版本文章 更新 代码已上传Github+Gitee,文末有地址 零.今天完成的绿色部分 一.依赖注入的理解和思考 二.常见的IoC框架有哪些 1.Autofac+原生 2.三种注入 ...

  8. ASP.NET Core依赖注入系统学习教程:容器对构造函数选择的策略

    .NET Core的依赖注入容器之所以能够为应用程序提供服务实例,这都归功于ServiceDescriptor对象提供的服务注册信息.另外,在ServiceDescriptor对象中,还为容器准备了3 ...

  9. spring的依赖注入是什么意思

    最近学习spring框架,对依赖注入有些模糊,遂上网翻阅资料,做了下列总结,原博客为CSDN 南夏的 spring的依赖注入是什么意思,侵删! Spring 能有效地组织J2EE应用各层的对象.不管是 ...

随机推荐

  1. 阿里云 RDS 与 DRDS 学习了解

    RDS 主页:https://help.aliyun.com/document_detail/26092.html?spm=5176.7741872.6.539.4h8LSC DRDS 主页:http ...

  2. Socket编程的UDP与TCP,应用在哪些地方

    随着网络技术飞速发展,网速已不再是传输的瓶颈,UDP协议以其简单.传输快的优势,在越来越多场景下取代了TCP,如网页浏览.流媒体.实时游戏.物联网. 1,网速的提升给UDP稳定性提供可靠网络保障 CD ...

  3. ds18b20采集温度并上报服务器

    交叉编译器:arm-linux-gcc-4.5.4 Linux内核版本:Linux-3.0 主机操作系统:Centos 6.5 开发板:FL2440 温度传感器:ds18b20 注:此程序的客户端是在 ...

  4. Cassandra的数据模型的理解

           Cassandra属于NoSQL数据库,NoSQL和传统关系型数据库不同,NOSQL偏好数据冗余,因为NoSQL一般无法做表关联查询. (1) keySpace 基本上可以将Keyspa ...

  5. Java 面试题 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  6. SSE图像算法优化系列四:图像转置的SSE优化(支持8位、24位、32位),提速4-6倍

    一.前言 转置操作在很多算法上都有着广泛的应用,在数学上矩阵转置更有着特殊的意义.而在图像处理上,如果说图像数据本身的转置,除了显示外,本身并无特殊含义,但是在某些情况下,确能有效的提高算法效率,比如 ...

  7. AI通过了艺术创作图灵测试,你根本分不出来作者是不是人

    各位geek朋友们,今年不用再看画了:近年来最大的艺术成就已经发生了. 这项艺术成就的诞生地,不是北京.新加坡.柏林郊区颜料四溅的画室中,不是威尼斯双年展上.请记住它出现的地点:美国新泽西州新布朗斯维 ...

  8. js手机适配

    代码一: <script type="text/javascript"> function mobile_device_detect(url){ var thisOS= ...

  9. jsp使用c:forEach报错 javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext的问题

    今天发现了一个折磨我一天的问题: 在jsp文件中使用 <c:forEach items="${checkResult}" var="item"> & ...

  10. Android.mk简介<转>

    文章参照:http://blog.sina.com.cn/s/blog_67d8d7060100q8un.html Android.mk文件是GNU Makefile的一小部分,它用来对Android ...