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>