我一直在使用 Spring.Net IoC 容器,可以使用它来注入(inject)类型为 IList
的属性。甚至IList<T>
但我对如何注入(inject)类型为 string[]
的属性感到有些困惑。 .
似乎没有 <array>
在 XSD 中定义并使用 <list> <value> </list>
的元素也不行。
如果有人可以发布我需要使用数组为属性注入(inject)的xml,将不胜感激
最佳答案
如前所述here in the documentation您可以将字符串数组作为逗号分隔的字符串注入(inject)(如果需要,不确定在字符串中转义实际逗号的语法是什么)。换句话说,您的配置看起来像这样:
<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>
关于inversion-of-control - 使用 Spring.Net 属性注入(inject)数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1175516/