У меня есть специальный раздел конфигурации, зарегистрированный в 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
.