Spring.NET依赖注入框架学习--实例化容器常用方法
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依赖注入框架学习--实例化容器常用方法的更多相关文章
- Spring.NET依赖注入框架学习--简单对象注入
Spring.NET依赖注入框架学习--简单对象注入 在前面的俩篇中讲解了依赖注入的概念以及Spring.NET框架的核心模块介绍,今天就要看看怎么来使用Spring.NET实现一个简单的对象注入 常 ...
- Spring.NET依赖注入框架学习--简介
Spring.NET依赖注入框架学习--Spring.NET简介 概述 Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序.它提供了很多方面的功能,比如依赖注入. ...
- Spring.NET依赖注入框架学习--入门
Spring.NET依赖注入框架学习--入门 在学些Spring.net框架之前,有必要先脑补一点知识,比如什么是依赖注入?IOC又是什么?控制反转又是什么意思?它们与Spring.net又有什么关系 ...
- Spring.NET依赖注入框架学习-- 泛型对象的创建和使用
Spring.NET依赖注入框架学习-- 泛型对象的创建和使用 泛型对象的创建方法和普通对象是一样的. 通过构造器创建泛型对象 下面是一个泛型类的代码: namespace GenericsPlay ...
- 在ABAP里模拟实现Java Spring的依赖注入
Dependency Injection- 依赖注入,在Java Spring框架中有着广泛地应用.通过依赖注入,我们不必在应用代码里繁琐地初始化依赖的资源,非常方便. 那么ABAP能否从语言层面上也 ...
- 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之九 || 依赖注入IoC学习 + AOP界面编程初探
更新 1.如果看不懂本文,或者比较困难,先别着急问问题,我单写了一个关于依赖注入的小Demo,可以下载看看,多思考思考注入的原理: https://github.com/anjoy8/BlogArti ...
- Z从壹开始前后端分离【 .NET Core2.2/3.0 +Vue2.0 】框架之九 || 依赖注入IoC学习 + AOP界面编程初探
本文梯子 本文3.0版本文章 更新 代码已上传Github+Gitee,文末有地址 零.今天完成的绿色部分 一.依赖注入的理解和思考 二.常见的IoC框架有哪些 1.Autofac+原生 2.三种注入 ...
- ASP.NET Core依赖注入系统学习教程:容器对构造函数选择的策略
.NET Core的依赖注入容器之所以能够为应用程序提供服务实例,这都归功于ServiceDescriptor对象提供的服务注册信息.另外,在ServiceDescriptor对象中,还为容器准备了3 ...
- spring的依赖注入是什么意思
最近学习spring框架,对依赖注入有些模糊,遂上网翻阅资料,做了下列总结,原博客为CSDN 南夏的 spring的依赖注入是什么意思,侵删! Spring 能有效地组织J2EE应用各层的对象.不管是 ...
随机推荐
- 如何在Angular优雅编写HTTP请求
原文:https://segmentfault.com/a/1190000010570799 ----------------------------------------------------- ...
- (转)Render Path
Render Path定义Render Path,就是采取的光照流程. Render Path设置可以在Edit-> Project Settings->Player 里设定,见下图.也可 ...
- ESXi安装实录
- Notes 和 Domino 已知限制
Notes 和 Domino 已知限制 功能测试 限制数据库的最大大小是多少? 最大的 OS 文件大小限制 -(最大为 64GB)文本域的最大大小是多少? 15KB(存储):15KB,显示在视图列中R ...
- 简单的redis 的list应用
error_reporting(E_ALL); if(empty($a)){ echo 111; }else{ echo 3333; } die; phpinfo();die; $redis = ne ...
- IDEA使用笔记(六)——设置项目的JDK配置
1:由于dev分支和master分支的代码差异比较多,所以,就从master上分出一个新的分支dev_,于是我就克隆新的代码,打开对应的项目文件,然后启动试试,发现报出如下的错误,很明显是因为没有制定 ...
- vue中单选框,利用不存在的值标示选中状态
1.效果预览 2.index.html <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- Linux下ip地址查询
[时间:2016-12] [状态:Open] [关键词:linux,ip地址,ifconfig,ip addr] 0 引用 说起来比较搞笑,我在windows下知道可以使用ipconfig命令查询本机 ...
- 【转】ubuntu16.04设置python3为默认及一些库的安装
原文:https://www.cnblogs.com/jokie/p/6933546.html Ubuntu默认Python为2.7,所以安装Python包时安装的为py2的包. 利用alternat ...
- 基于jQuery图片遮罩滑动文字切换特效
基于jQuery图片遮罩滑动文字切换特效.这是一款jquery hover鼠标滑动选项卡切换透明背景遮罩文字显示特效.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div ...