创建了对象,如果是简单对象就到此为止,如果是复杂对象,则需要为它的属性赋值。
属性赋值有两种方法:属性注入和构造器注入。
一、属性注入
在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" />