【问题标题】:Can ConfigurationElementCollection object contain for its elements another ConfigurationElementCollection objects?ConfigurationElementCollection 对象能否为其元素包含另一个 ConfigurationElementCollection 对象?
【发布时间】:2011-04-17 11:02:10
【问题描述】:

ConfigurationElementCollection 对象能否为其元素包含另一个 ConfigurationElementCollection 对象?

我有这个 xml,其中 testsection 是节根:

<testsection>
    <head>
        <metaData>
            <metaGroup id="general">
                <meta name="Content-type" content="text/html; charset=utf-8" type="http-equiv" />
            </metaGroup>
            <metaGroup id="default">
                <meta name="something" content="test" type="name" />
            </metaGroup>
        </metaData>
    </head>
</testsection>

是否可以使用 ConfigurationSection、ConfigurationElement 和 ConfigurationElementCollection 创建可以读取上述 xml 的类?

问题在于,当我们实现 ConfigurationElementCollection 时,我们无法将集合中的元素定义为另一个 ConfigurationElementCollection 类型。

如果配置部分是这样的(没有 metaGroup 元素),我可以让它工作:

<testsection>
        <head>
            <metaData>
                    <meta name="Content-type" content="text/html; charset=utf-8" type="http-equiv" />
                    <meta name="something" content="test" type="name" />
            </metaData>
        </head>
    </testsection>

【问题讨论】:

    标签: c# configuration .net-2.0 web-config app-config


    【解决方案1】:

    我认为只有 ConfigurationElement 对象可以包含 ConfigurationElementCollection 对象(ConfigurationElementCollection 必须为其父 ConfigurationElement)。所以我认为如果 metaGroup 是 ConfigurationElement 并且如果我添加一个新的 ConfigurationElementCollection (metaGroupCollection) 作为 meta ConfigurationElement 的父级,我可以解决这个问题。

    <testsection>
            <head>
                <metaData>
                    <metaGroup id="general">
                      <metaGroupCollection>
                          <meta name="Content-type" content="text/html; charset=utf-8" type="http-equiv" />
                      </metaGroupCollection>
                    </metaGroup>
                    <metaGroup id="default">
                      <metaGroupCollection>
                          <meta name="something" content="test" type="name" />
                      </metaGroupCollection>
                    </metaGroup>
                </metaData>
            </head>
        </testsection>
    

    【讨论】:

      猜你喜欢
      • 2014-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-29
      相关资源
      最近更新 更多