Пользовательская конфигурация .NET - Могу ли я иметь коллекцию элементов с неоднородными элементами?

У меня есть специальный раздел конфигурации, зарегистрированный в app / web.config, назовем его MySection . У меня есть элемент ElementCollection внутри раздела, который называется MyElements . Внутри коллекции элементов я хочу иметь элементы, которые представлены разными классами - идея состоит в том, что это похожие классы с некоторыми общими свойствами, а некоторые специфичны для экземпляра.

Вот пример конфигурации xml:

<MySection>
  <MyElements>
    <Element1 name="someProp1" value="someValue" />
    <Element2 name="someProp2" format="{0}{1}" />
  </MyElements>
</MySection>

В моем простом примере все элементы должны иметь свойство «имя», некоторые также будут иметь свойство «значение», а другие - свойство «формат». Здесь я хочу, чтобы Element1 и Element2 были представлены в среде выполнения .NET двумя разными классами, которые имеют общий базовый класс, определяющий свойство 'name'.

Насколько я разбирался в конфигурации .NET, у меня сложилось впечатление, что коллекция элементов (например, «MyElements» здесь) должна содержать однородные элементы (только одного типа). Итак, можно ли добиться того, чего я хочу, - сделать так, чтобы он содержал элементы разных классов. Идея состоит в том, чтобы избежать как наличия нескольких коллекций элементов для разных типов элементов, так и не записывать все повторяющиеся свойства для каждой пользовательской реализации ConfigurationElement .

6
задан Ivaylo Slavov 7 January 2012 в 11:33
поделиться