inversion-of-control - 使用 Spring.Net 属性注入(inject)数组

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

我一直在使用 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/

相关文章:

c# - 使用 Unity 自动注册所有接口(interface)

ioc-container - Ninject:为 AoP 代理类型时可以使用注入(inject)构造函数吗?

.net - 使用IOC将POCO作为Web服务公开-Spring.net的WebServiceExporter的替代产品?

c# - 在 StructureMap 中注册一个默认实例

Spring.Net Quartz调度和代码配置

.net - SpringDotNet 中没有上下文注册错误

c# - 使用 Unity 解决命名依赖关系

javascript - 将特定值注入(inject)对象构造函数

dependency-injection - IoC 上下文中基于代码的注册与设计时注册

.net - 将 InterceptionBehaviour 添加到 IoC 容器中注册的所有内容