Ho una sezione di configurazione personalizzata registrata nell'app/web.config, chiamiamola MySection
. Ho un elemento ElementCollection
all'interno della sezione, chiamato MyElements
. All'interno della collezione di elementi voglio avere elementi che sono rappresentati da classi diverse - l'idea è che si tratta di classi simili con alcune proprietà comuni e alcune specifiche dell'istanza.Configurazione personalizzata .NET - Posso avere una raccolta di elementi con elementi non omogenei?
Ecco alcuni esempi di configurazione XML:
<MySection>
<MyElements>
<Element1 name="someProp1" value="someValue" />
<Element2 name="someProp2" format="{0}{1}" />
</MyElements>
</MySection>
Nel mio semplice esempio, tutti gli elementi devono avere un 'nome' di proprietà, alcuni avranno anche una proprietà 'valore', e l'altro un 'format' proprietà. Qui, voglio rappresentare Element1
e Element2
nel runtime .NET da due classi diverse che hanno una classe base comune che definisce la proprietà 'nome'.
Per quanto ho scavato nella configurazione .NET, ho avuto l'impressione che una raccolta di elementi (come "MyElements" qui) dovesse contenere elementi omogenei (solo di un tipo). Quindi, potrebbe essere possibile ottenere ciò che voglio: farlo contenere elementi di classi diverse. L'idea è di evitare di avere più di una raccolta di elementi per diversi tipi di elementi e di non scrivere tutte le proprietà di ripetizione per ogni implementazione personalizzata di ConfigurationElement
.
Grazie per la risposta. In effetti, un antenato comune è quello che intendo usare comunque. Almeno, sto cercando di riutilizzare le proprietà comuni di elementi simili, quindi l'antenato comune può memorizzarli e anche ridurre il codice per gli elementi concreti :) –