属性使用Spring.Net注入数组

时间:2009-07-24 02:40:03

标签: inversion-of-control ioc-container spring.net

我一直在使用Spring.Net IoC容器,并且可以使用它来注入IList甚至IList<T>类型的属性,但我对如何注入一个问题感到有点难过类型为string[]的属性。

似乎没有在XSD中定义<array>元素,并且使用<list> <value> </list>也不起作用。

如果有人可以发布xml我需要使用数组注入属性,我们将不胜感激

1 个答案:

答案 0 :(得分:7)

如上所述here in the documentation,您可以将字符串数组注入逗号分隔的字符串(如果需要,不确定在字符串中转义实际逗号的语法是什么)。换句话说,您的配置看起来像这样:

<object id="MyObject" type="Blah.SomeClass, Blah" >
    <property name="StringArrayProperty" value="abc,def,ghi" />
</object>

如果您需要更复杂的内容(例如,如果您从其他引用中查找单个值而不是对其进行硬编码),则使用以下语法手动构造string[]也可以正常工作:

<object id="TestStrArr" type="string[]" >
    <constructor-arg value="3" />
    <property name="[0]" value="qwe" />
    <property name="[1]" value="asd" />
    <property name="[2]" value="zxc" />
</object>

<object id="MyObject" type="Blah.SomeClass, Blah" >
    <property name="StringArrayProperty" ref="TestStrArr" />
</object>