¿Es posible tener un CollectionElementCollection con un número de diferentes por CollectionElements tipo, por ejemplo:ConfigurationElementCollection con un número de ConfigurationElements de diferente tipo
<collection>
<add type="MyType1, MyLib" Type1SpecificProp="1" />
<add type="MyType2, MyLib" Type2SpecificProp="2" />
</collection
He todas las clases requeridas para tal solución:
class MyCollection : ConfigurationElementCollection { }
class MyElement : ConfigurationElement { }
class MyType1 : MyElement { }
class MyType2 : MyElement { }
...
etc
pero cuando comienzo mi solicitud me estoy poniendo al lado de error predecible:
Unrecognized attribute 'Type1SpecificProp'.
porque Type1SpecificProp
se define en MyType1
no MyElement
, especialmente si MyCollection
tiene método siguiente:
protected override ConfigurationElement CreateNewElement()
{
return new MyElement(); // but I want instantiate not the base class but by a type given
}
es decir rendimientos clase base así OnDeserializeUnrecognizedAttribute()
en hijo clasificado nunca son sido llamados.
Entonces la pregunta es: ¿cómo dejar que las clases de niños resuelvan los elementos desconocidos por su cuenta?
Sé que esta respuesta se publicó hace un tiempo, pero ¿podría entrar en detalles un poco más si está marcando esto como la respuesta aceptada? – goric
@goric: debe heredarlo y anular 'RetrieveConfigurationElementType' para sustituir el tipo en tiempo de ejecución. Consulte también [NameTypeConfigurationElementCollection] (http://msdn.microsoft.com/en-us/library/ee939739%28PandP.50%29.aspx) – abatishchev