如何将字符串数组组件添加到 XML 配置?

How to add string array component to XML configuration?

我在 XML 配置文件中有许多组件描述了不同的配置。每个配置都有一个 字符串数组 属性 IgnoredCountries。现在我必须在某些配置中忽略所有国家。为了减少配置文件的大小(并使其更全面),我想创建单独的组件 allCountries ,它将包含所有国家代码,并在需要时引用它。问题是正确定义字符串数组的组件。

我正在使用 Castle Windsor 作为 IoC 容器。我尝试使用以下代码声明组件,但没有成功。

<component id="allCountries" service="System.String[], mscorlib">
  <parameters>
    <collection>
      <list>
        <item>AF</item>
        <item>AL</item>
        <item>AS</item>
        <!-- there's a lot of items -->
      </list>
    </collection>
  </parameters>
</component>

当尝试声明如上所示的组件时,我收到一个异常,指出组件 allCountries is waiting for the following dependencies: Parameter '' which was not provided. Did you forget to set the dependency?

这不起作用,因为 stringstring[] 不是有效的组件类型。组件应该是 classes,而不是基元。

理想情况下,您不会为此使用 XML,但如果您确定它对您的情况有意义,您可以将其放在 xml 属性 中。我不是 100% 确定它会工作,但试一试。请参阅文档 here.

中的示例

更简洁的解决方案是将其包装在 class 中,而不是依赖于 string[]