Mam niestandardową sekcję konfiguracji zarejestrowaną w aplikacji/web.config, nazwijmy ją MySection
. Wewnątrz sekcji znajduje się element ElementCollection
o nazwie MyElements
. W kolekcji elementów chcę mieć elementy reprezentowane przez różne klasy - chodzi o to, że są to podobne klasy z pewnymi wspólnymi właściwościami i niektórymi właściwymi dla instancji.Niestandardowa konfiguracja .NET - Czy mogę gromadzić elementy z niejednorodnymi elementami?
Oto przykład konfiguracji xml:
<MySection>
<MyElements>
<Element1 name="someProp1" value="someValue" />
<Element2 name="someProp2" format="{0}{1}" />
</MyElements>
</MySection>
W moim prostym przykładzie, wszystkie elementy muszą mieć „name” własność, niektórzy będą mieć również właściwość „wartość”, a drugi „Format” własność. Tutaj chcę, aby Element1
i Element2
były reprezentowane w środowisku wykonawczym .NET przez dwie różne klasy, które mają wspólną klasę podstawową, która definiuje właściwość 'name'.
O ile zagłębiłem się w konfigurację .NET, odniosłem wrażenie, że kolekcja elementów (np. "MyElements" tutaj) powinna zawierać jednorodne elementy (tylko jednego typu). Tak więc, możliwe jest osiągnięcie tego, czego chcę - sprawić, by zawierały elementy różnych klas. Chodzi o to, aby uniknąć zarówno posiadania więcej niż jednej kolekcji elementów dla różnych typów elementów, jak i nie zapisywania wszystkich powtarzających się właściwości dla każdej niestandardowej implementacji ConfigurationElement
.
dziękuję za odpowiedź. Rzeczywiście, wspólny przodek jest tym, co i tak zamierzam użyć. Przynajmniej próbuję ponownie użyć wspólnych właściwości podobnych elementów, dlatego wspólny przodek może je przechowywać, a także zredukować kod dla konkretnych elementów :) –