创建了对象,如果是简单对象就到此为止,如果是复杂对象,则需要为它的属性赋值。

属性赋值有两种方法:属性注入和构造器注入。

一、属性注入

在object节点下使用property就是属性注入,如下:

   <object name="person" type="LINQDemo.person,LINQDemo">
        <property name="name" value="ren"></property>
        <property name="id" value="2"></property>
        
      </object>

property节点就是为person类的属性注入值。

简单的值类型可以直接通过value赋值,上述就分别赋值了int和string类型的数据。

内联类型则需要同过ref属性来设置,比如:

 声明student类实例
<object name="stu" type="LINQDemo.student,LINQDemo"/> 

调用
<object name="person" type="LINQDemo.person,LINQDemo">
        <property name="name" ref=”stu“></property>
       </object>

  也可以这样:

<property name="stu">
<object name="per" type="LINQDemo.person,LINQDemo"></object>
</property>

 

二、构造函数注入

构造器注入使用constructor-arg标签作为标识,它是属性包括name、ref。value。

<object name="stu" type="LINQDemo.student,LINQDemo">
 </object>
<object name="person" type="LINQDemo.person,LINQDemo">
        <constructor-arg name="id" value="1"/>
        <constructor-arg name="stu" ref="stu">
      </object>

  

构造函数参数解析:

1.根据参数类型匹配

<constructor type="int" value="1234">
<constructor type="string"  value="小人">

  

2.根据参数索引匹配

<constructor index="0" value="123" />
<constructor index="1" value="小人" />

  

3.根据参数名称匹配

<constructor name="id" value="123" />
<constructor name="name" value="xiaoren" />