ConfigurationElementCollection con una serie de ConfigurationElements de diferente tipo
¿Es posible tener una CollectionElementCollection con una serie de diferentes CollectionElements por tipo, por ejemplo:
<collection>
<add type="MyType1, MyLib" Type1SpecificProp="1" />
<add type="MyType2, MyLib" Type2SpecificProp="2" />
</collection
Tengo todas las clases requeridas para tal solución:
class MyCollection : ConfigurationElementCollection { }
class MyElement : ConfigurationElement { }
class MyType1 : MyElement { }
class MyType2 : MyElement { }
...
etc
pero cuando inicio mi aplicación obtengo el siguiente error predecible:
Atributo no reconocido 'Type1SpecificProp'.
porqueType1SpecificProp
se define enMyType1
noMyElement
, especialmente siMyCollection
tiene el siguiente método:
protected override ConfigurationElement CreateNewElement()
{
return new MyElement(); // but I want instantiate not the base class but by a type given
}
es decir, devuelve la clase base por lo tantoOnDeserializeUnrecognizedAttribute()
en niños clasificados nunca se han llamado.
Entonces la pregunta es: ¿cómo dejar que las clases infantiles resuelvan elementos desconocidos por sí mismos?