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 中 前端用户登录时携带当 ...
随机推荐
- 使border处于边框内
box-sizing需要指定高度,它在这个高度出现,不会增加额外的高度 .box{box-sizing: border-box;height: 64px;}
- laravel5.4安装的报错
laravel5.4安装的报错 [InvalidArgumentException] Could not find package laravle/installer at any version f ...
- HTML5 Canvas ( 图形变换, 升级版的星空 ) translate, rotate, scale
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- leetcode345
public class Solution { public string ReverseVowels(string s) { var str = s.ToList(); var Vowels = n ...
- FindWindow 查找窗口
Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hwnd As ...
- JS时间转时间戳,时间戳转时间。时间显示模式。
函数内容 // 时间转为时间戳 function date2timestamp(datetime) { var timestamp = new Date(Date.parse(datetime)); ...
- WP runtime 获取cookie
HttpBaseProtocolFilter httpBaseProtocolFilter = new HttpBaseProtocolFilter(); HttpCookieManager http ...
- 一个取消事件的简单js例子(事件冒泡与取消默认行为)
先上代码: <div id='outer' onclick='alert("我是outer")'> <div id="middle" oncl ...
- locate包的安装
linux中locate命令可以快速定位我们需要查找的文件,但是在yum中,locate的安装包名为 mlocate(yum list | grep locate可以查看),安装方法: yum -y ...
- denyhosts配置详解
DenyHosts官方网站为:http://denyhosts.sourceforge.net 用DenyHosts可以阻止试图猜测SSH登录口令,它会分析/var/log/secure等日志文件,当 ...