SPRING.NET 1.3.2 学习21--使用对象或类的属性值进行注入
2013-04-01 15:40
489 查看
PropertyRetrievingFactoryObject是IFactoryObject接口的实现类,用于将其它对象或类型的属性值注入给对象的属性或构造器参数。该类可以从对象或类型中(指静态属性)获取任何公有属性的值。
如果要用PropertyRetrievingFactoryObject获取实例属性的值,需要为其指定目标对象及属性名,目标对象可以是任意其它对象,甚至可以是内联对象。如果要获取静态属性,则需要指定目标类型的全名和属性名。
然后,通过PropertyRetrievingFactoryObject对象的id即可获取目标对象或类型的属性值,获取的结果可直接注入给对象的属性或构造器参数。注意,实例属性和静态属性都支持嵌套。
下面使用PropertyRetrievingFactoryObject获取目标对象的属性值。在此目标对象的属性值是个内联的对象定义,所以在PropertyRetrievingFactoryObject对象定义的TargetProperty属性中,使用了嵌套式的属性路径。
如果要用PropertyRetrievingFactoryObject获取实例属性的值,需要为其指定目标对象及属性名,目标对象可以是任意其它对象,甚至可以是内联对象。如果要获取静态属性,则需要指定目标类型的全名和属性名。
然后,通过PropertyRetrievingFactoryObject对象的id即可获取目标对象或类型的属性值,获取的结果可直接注入给对象的属性或构造器参数。注意,实例属性和静态属性都支持嵌套。
下面使用PropertyRetrievingFactoryObject获取目标对象的属性值。在此目标对象的属性值是个内联的对象定义,所以在PropertyRetrievingFactoryObject对象定义的TargetProperty属性中,使用了嵌套式的属性路径。
<object name="person" type="Spring.Objects.TestObject, Spring.Core.Tests"> <property name="age" value="20"/> <property name="spouse"> <object type="Spring.Objects.TestObject, Spring.Core.Tests"> <property name="age" value="21"/> </object> </property> </object> // will result in 21, which is the value of property 'spouse.age' of object 'person' <object name="theAge" type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core"> <property name="TargetObject" ref="person"/> <property name="TargetProperty" value="spouse.age"/> </object>下面是使用PropertyRetrievingFactoryObject获取静态属性的方法:
<object id="cultureAware" type="Spring.Objects.Factory.Xml.XmlObjectFactoryTests+MyTestObject, Spring.Core.Tests"> <property name="culture" ref="cultureFactory"/> </object> <object id="cultureFactory" type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core"> <property name="StaticProperty"> <value>System.Globalization.CultureInfo.CurrentUICulture, Mscorlib</value> </property> </object>类似的,获取实例属性的方法如下:
<object id="instancePropertyCultureAware" type="Spring.Objects.Factory.Xml.XmlObjectFactoryTests+MyTestObject, Spring.Core.Tests"> <property name="Culture" ref="instancePropertyCultureFactory"/> </object> <object id="instancePropertyCultureFactory" type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core"> <property name="TargetObject" ref="instancePropertyCultureAwareSource"/> <property name="TargetProperty" value="MyDefaultCulture"/> </object> <object id="instancePropertyCultureAwareSource" type="Spring.Objects.Factory.Xml.XmlObjectFactoryTests+MyTestObject, Spring.Core.Tests"/>
相关文章推荐
- SPRING.NET 1.3.2 学习22--使用字段值进行注入
- SPRING.NET 1.3.2 学习23--使用方法的返回值进行注入
- Spring.NET依赖注入框架学习-- 泛型对象的创建和使用
- SPRING.NET 1.3.2 学习7--使用外部对象和内部对象
- spring.net的简单使用(四)对象属性注入
- SPRING.NET 1.3.2 学习20--方法注入之替换方法注入
- 使用Spring.Net对Web页面进行依赖注入
- SPRING.NET 1.3.2 学习4 --实例化对象
- SPRING.NET 1.3.2 学习16--使用depends-on
- spring.net学习笔记1--依赖对象注入
- SPRING.NET 1.3.2 学习8--设置集合对象的值
- SPRING.NET 1.3.2 学习19--方法注入之查询方法注入
- Spring.NET依赖注入框架学习--简单对象注入
- 学习《spring 3.x企业应用开发实战》之使用OXM进行对象XML映射
- Spring使用PropertyPathFactoryBean进行属性值注入
- SPRING.NET 1.3.2 学习18--方法注入之IObjectFactoryAware,IObjectNameAware
- 使用Spring.Net对Web页面进行依赖注入
- SPRING.NET 1.3.2 学习10--合并集合对象
- SPRING.NET 1.3.2 学习5--依赖注入
- ASP.NET_MVC使用Spring.Net.MVC依赖注入学习笔记