Spring.NET学习笔记8——集合类型的注入(基础篇) Level 200
Spring.NET还支持集合类型的注入。而且使用起来也比较方便。
一、ILIst类型
使用<list>元素作为ILIst的标签,value为集合中元素的值。也可以注入对象,甚至关联其它对象,使用 <ref/>元素表示关联的对象,object 属性为所关联对象的id或name。集合可以为空,用<null/>元素来标记。
在<list>元素中设置 element-type 属性表示泛型T的类型,例如 element-type="int" ,代表int型。
二、IDictionary类型
使用<dictionary>元素来表示IDictionary接口的实现类型。<entry/>表示IDictionary集合的元素。key和value属性为元素的键值队,value-ref为关联的元素。
同理,<dictionary>元素的key-type和value-type属性来表示泛型IDictionary,例如 <dictionary key-type="string" value-type="object"> 。
完整代码如下:
<?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>
输入结果如下:
作者:刘冬.NET 博客地址:http://www.cnblogs.com/GoodHelper/ 欢迎转载,但须保留版权