Может ли объект ConfigurationElementCollection содержать для своих элементов другие объекты ConfigurationElementCollection? - PullRequest
1 голос
/ 26 сентября 2010

Может ли объект 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.

Я могу заставить его работать, еслиРаздел конфигурации выглядит так (без элементов метагруппы):

<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>

1 Ответ

1 голос
/ 27 сентября 2010

Я думаю, что только объекты ConfigurationElement могут содержать объекты ConfigurationElementCollection (ConfigurationElementCollection должна иметь для своего родительского ConfigurationElement). Поэтому я думаю, что могу решить эту проблему, если metaGroup будет ConfigurationElement и если я добавлю новый ConfigurationElementCollection (metaGroupCollection) в качестве родителя мета 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>
...