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