Tengo una clase derivada que agrega solo métodos a una clase base. ¿Cómo se puede serializar la clase derivada para que coincida con la serialización de la clase base? es decir, el XML serializado de la clase derivada debe verse como:Cómo serializar una clase derivada como su clase base
<BaseClass>
...
</BaseClass>
por ejemplo Lo siguiente arrojará una InvalidOperationException "No se esperaba el tipo DerivedClass. Use el atributo XmlInclude o SoapInclude para especificar los tipos que no se conocen estáticamente".
Class BaseClass {}
Class DerivedClass : BaseClass {}
DerivedClass derived = new DerivedClass();
StreamWriter stream = new StreamWriter("output file path");
XmlSerializer serializer = new XmlSerializer(GetType(BaseClass));
serializer(stream, derived);
hace el trabajo, gracias. –
Chicos, estoy teniendo el mismo problema aquí, pero esto no funcionó. Mi clase base se creó a partir de un XSD, por lo que no sé qué poner en [XmlRoot] es el nombre de la clase, o el nombre del elemento raíz de la clase base (debería especificar su espacio de nombres, etc, etc.) – Tejo
¿Existe una solución si solo se conoce la base pero no el tipo derivado? –