Spring.NET学习笔记8——集合类型的注入(基础篇)
1.基础类
public class Happy
{
public override string ToString()
{
return "每天都开心,每天都有好心情";
}
}
public class OneYear
{
public override string ToString()
{
return "快乐的一年";
}
}
public class Person
{
//下面都是预注入的属性
public IList<Person> BestFriends { get; set; }
public IList HappyYears { get; set; }
public IList<int> Years { get; set; }
public IDictionary HappyDic { get; set; }
public IDictionary<string,object> HappyTimes { get; set; }
}
2.配置文件
<?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" />
</context>
<objects xmlns="http://www.springframework.net">
<object id="person" type="SpringNetDi.Person, SpringNetDi">
<!--空集合属性-->
<property name="BestFriends">
<null/>
</property>
<!--System.Collections.IList注入 -->
<property name="HappyYears">
<list>
<value>1992</value>
<value>1998 年</value>
<ref object="oneYear"/>
</list>
</property>
<!--System.Collections.IList<int>注入 -->
<property name="Years">
<list element-type="int">
<value>1992</value>
<value>1998</value>
<value>2000</value>
</list>
</property>
<!--System.Collections.IDictionary注入-->
<property name="HappyDic">
<dictionary key-type="string" value-type="object">
<entry key="第一开心" value="每天都能睡一个好觉"/>
<entry key="第二开心" value-ref="happy"/>
</dictionary>
</property>
<!--System.Collections.IDictionary<object,object>注入-->
<property name="HappyTimes">
<dictionary key-type="string" value-type="object">
<entry key="第一开心" value="每天都能睡一个好觉"/>
<entry key="第二开心" value-ref="happy"/>
</dictionary>
</property>
</object>
<object id="oneYear" type="SpringNetDi.OneYear,SpringNetDi"/>
<object id="happy" type="SpringNetDi.Happy,SpringNetDi"/>
</objects>
</spring>
</configuration>
3.调用
class Program
{
static void Main(string[] args)
{
IApplicationContext ctx = ContextRegistry.GetContext();
Person person = ctx.GetObject("person") as Person;
Console.WriteLine("空值");
string bestFriend = person.BestFriends == null ? "我的朋友太多了" : "我只有一个好朋友";
Console.WriteLine(bestFriend);
Console.WriteLine();
Console.WriteLine("IList");
foreach (var item in person.HappyYears)
{
Console.WriteLine(item);
}
Console.WriteLine();
Console.WriteLine("泛型Ilist<int>");
foreach (int item in person.Years)
{
Console.WriteLine(item);
}
Console.WriteLine();
Console.WriteLine("IDictionary");
foreach (DictionaryEntry item in person.HappyDic)
{
Console.WriteLine(item.Key + " 是 " + item.Value);
}
Console.WriteLine();
Console.WriteLine("泛型IDictionary<string,object>");
foreach (KeyValuePair<string,object> item in person.HappyTimes)
{
Console.WriteLine(item.Key + " 是 " + item.Value);
} 
Console.ReadLine();
}
}
4.结果
Spring.NET学习笔记8——集合类型的注入(基础篇)的更多相关文章
- Spring.NET学习笔记7——依赖对象的注入(基础篇) Level 200
1.person类 public class Person { public string Name { get; set; } public int Age { g ...
- 【Spring实战】—— 7 复杂集合类型的注入
之前讲解了Spring的基本类型和bean引用的注入,接下来学习一下复杂集合类型的注入,例如:List.Set.Map等. 对于程序员来说,掌握多种语言是基本的技能. 我们这里做了一个小例子,程序员们 ...
- Spring.Net学习笔记(5)-集合注入
一.开发环境 系统:Win10 编译器:VS2013 .net版本:.net framework4.5 二.涉及程序集 Spring.Core.dll 1.3.1 Common.Loggin.dll ...
- Spring.Net学习笔记(4)-属性及构造器注入
一.开发环境 操作系统:Win10 编译器:VS2013 .Net版本:.net framework4.5 二.涉及程序集 Spring.Core.dll:1.3.1 Common.Logging.d ...
- python学习笔记六 初识面向对象上(基础篇)
python面向对象 面向对象编程(Object-Oriented Programming )介绍 对于编程语言的初学者来讲,OOP不是一个很容易理解的编程方式,虽然大家都知道OOP的三大特性 ...
- 【转】Spring.NET学习笔记——目录
目录 前言 Spring.NET学习笔记——前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1——控制反转(基础篇) Level 200 Spring.NET学习笔 ...
- Spring.NET学习笔记——目录(原)
目录 前言 Spring.NET学习笔记——前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1——控制反转(基础篇) Level 200 Spring.NET学习笔 ...
- Spring Boot 学习笔记(六) 整合 RESTful 参数传递
Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...
- SpringBoot + Spring Security 学习笔记(三)实现图片验证码认证
整体实现逻辑 前端在登录页面时,自动从后台获取最新的验证码图片 服务器接收获取生成验证码请求,生成验证码和对应的图片,图片响应回前端,验证码保存一份到服务器的 session 中 前端用户登录时携带当 ...
随机推荐
- 通过python给mysql建表
一.python连接mysql from sqlalchemy import create_engine # 数据库数据 HOSTNAME = '127.0.0.1' # linux本地 PORT = ...
- ZABBIX监控80连接数
自定义监控项(监控网站80连接数 http://blog.51cto.com/shuzonglu/2104195
- Mysql 开启Federated引擎以及使用
FEDERATED是其中一个专门针对远程数据库的实现.但通过FEDERATED引擎创建的表只是在本地有表定义文件,数据文件则存在于远程数据库中通过这个引擎可以实现类似Oracle 下DBLINK的远程 ...
- viewer 照片查看器
viewer 照片查看器 效果: api: https://github.com/fengyuanchen/viewerjs#methods npm: npm install viewerjs 使用: ...
- IdUDPServer 收到4次重复的数据
IdUDPServer1->Send(RemoteIP, LabeledEdit2->Text.ToInt(), InText, IndyTextEncoding_UTF8()); 我发给 ...
- 客户端如何连接 DataSnap Server 调用服务的方法
一般http访问的地址是 http://localhost:8099/datasnap/rest/TServerMethods1/EchoString/abc 一.用FDConnection1连接Da ...
- python中关键字的总结
python中各种关键字的总结:用表格形式,解释关键字符号的作用和案例说明 关键字 ...
- ABAP-关于COMMIT WORK 和COMMIT WORK AND WAIT
转载:https://blog.csdn.net/champaignwolf/article/details/6925019 首先说明一点:更新是异步的,更新是由SAP中UPD1和UPD2两个进程执行 ...
- apiCloud上传头像
apiCloud上传头像 1.拍照 2.从相机中选择 aui布局 <li class="aui-list-item"> <div class="aui- ...
- 迷你MVVM框架 avalonjs 学习教程21、双向绑定链
avalon的双向绑定机制,是通过一条依赖链实现.此依赖链最底层是监控属性.监控数组,中层是计算属性.监控函数,再上点是求值函数,最上层是视图刷新函数. 所谓计算属性,监控属性,监控函数属性,我们改变 ...