Tengo una sección de configuración personalizada registrada en la aplicación/web.config, llamémosla MySection
. Tengo un elemento ElementCollection
dentro de la sección, llamado MyElements
. Dentro de la colección de elementos, quiero tener elementos que estén representados por diferentes clases, la idea es que estas son clases similares con algunas propiedades comunes y algunas específicas de la instancia.Configuración personalizada de .NET - ¿Puedo tener elementos de colección con elementos no homogéneos?
Aquí es un poco de ejemplo de configuración xml:
<MySection>
<MyElements>
<Element1 name="someProp1" value="someValue" />
<Element2 name="someProp2" format="{0}{1}" />
</MyElements>
</MySection>
En mi ejemplo sencillo, todos los elementos deben tener una propiedad 'nombre', algunos tendrán también una propiedad 'valor', y el otro un 'formato' propiedad. Aquí, quiero que Element1
y Element2
estén representados en el tiempo de ejecución de .NET por dos clases diferentes que tienen una clase base común que define la propiedad 'nombre'.
Por lo que he excavado en la configuración de .NET, tuve la impresión de que una colección de elementos (como 'MyElements' aquí) debería contener elementos homogéneos (solo de un tipo). Entonces, ¿podría ser posible lograr lo que quiero? Hacer que contenga elementos de diferentes clases. La idea es evitar tener más de una colección de elementos para diferentes tipos de elementos y no escribir todas las propiedades repetitivas para cada implementación personalizada de ConfigurationElement
.
Gracias por su respuesta. De hecho, un antepasado común es lo que quiero decir de todos modos. Al menos, estoy tratando de reutilizar las propiedades comunes de elementos similares, por lo tanto, el ancestro común puede almacenarlos y también reducir el código de los elementos concretos :) –