SPRING.NET 1.3.2学習9-汎用集合の値の設定
3387 ワード
次の例では、クラスに汎用集合タイプが含まれています.
public class LotteryTicket {
List<int> list;
DateTime date;
public List<int> Numbers {
set { list = value; }
get { return list; }
}
public DateTime Date {
get { return date; }
set { date = value; }
}
}
この汎用集合を構成する<object id="MyLotteryTicket" type="GenericsPlay.Lottery.LotteryTicket, GenericsPlay">
<property name="Numbers">
<list element-type="int">
<value>11</value>
<value>21</value>
<value>23</value>
<value>34</value>
<value>36</value>
<value>38</value>
</list>
</property>
<property name="Date" value="4/16/2006"/>
</object>
より複雑な例public class GenericExpressionHolder
{
private System.Collections.Generic.IList<IExpression> expressionsList;
private System.Collections.Generic.IDictionary<string,IExpression> expressionsDictionary;
public System.Collections.Generic.IList<IExpression> ExpressionsList
{
set { this.expressionsList = value; }
}
public System.Collections.Generic.IDictionary<string, IExpression> ExpressionsDictionary
{
set { this.expressionsDictionary = value; }
}
public IExpression this[int index]
{
get
{
return this.expressionsList[index];
}
}
public IExpression this[string key]
{
get { return this.expressionsDictionary[key]; }
}
}
以下のXMLプロファイルはSpringを使用する.Expressions.タイプ変換を支援するIExpression、Spring.Objects.TypeConverters.ExpressionConverterはSpringフレームワークに事前登録されており、手動で登録する必要はありません.<object id="genericExpressionHolder"
type="Spring.Objects.Factory.Xml.GenericExpressionHolder,
Spring.Core.Tests">
<property name="ExpressionsList">
<list element-type="Spring.Expressions.IExpression, Spring.Core">
<value>1 + 1</value>
<value>date('1856-7-9').Month</value>
<value>'Nikola Tesla'.ToUpper()</value>
<value>DateTime.Today > date('1856-7-9')</value>
</list>
</property>
<property name="ExpressionsDictionary">
<dictionary key-type="string" value-type="Spring.Expressions.IExpression, Spring.Core">
<entry key="zero">
<value>1 + 1</value>
</entry>
<entry key="one">
<value>date('1856-7-9').Month</value>
</entry>
<entry key="two">
<value>'Nikola Tesla'.ToUpper()</value>
</entry>
<entry key="three">
<value>DateTime.Today > date('1856-7-9')</value>
</entry>
</dictionary>
</property>
</object>