我一直在使用Spring.Net IoC容器,并且可以使用它来注入IList
甚至IList<T>
类型的属性,但我对如何注入一个问题感到有点难过类型为string[]
的属性。
似乎没有在XSD中定义<array>
元素,并且使用<list> <value> </list>
也不起作用。
如果有人可以发布xml我需要使用数组注入属性,我们将不胜感激
答案 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>