属性使用Spring.Net注入数组

lom*_*axx 4 spring.net ioc-container inversion-of-control

我一直在使用Spring.Net IoC容器,并且可以使用它来注入类型IList甚至是类型的属性,IList<T>但我对如何注入类型的属性感到有些困惑string[].

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

如果有人可以发布xml,我需要使用数组注入属性,非常感谢

Alc*_*nja 7

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

<object id="MyObject" type="Blah.SomeClass, Blah" >
    <property name="StringArrayProperty" value="abc,def,ghi" />
</object>
Run Code Online (Sandbox Code Playgroud)

string[]如果您需要更复杂的东西(例如,如果您从其他参考中查找单个值而不是对其进行硬编码),则使用以下语法手动构造a 也会起作用:

<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>
Run Code Online (Sandbox Code Playgroud)