Sí, personalmente uso la serialización automática de XML, aunque utilizo DataContractSerializer inicialmente traído por WCF (la capacidad de serializar tipos sin atributos es muy útil) ya que no incrusta tipos allí. Por supuesto, por lo tanto, necesita saber el tipo de objeto que está deserializando al volver a cargarlo.
El gran problema es que también es difícil serializar atributos sin implementar IXmlSerializable en el tipo de datos que desee. escribirse así, o exponiendo algunos otros tipos que el serializador puede manejar de forma nativa.
Supongo que el mayor problema con esto es que no se pueden serializar las interfaces automáticamente, porque el DCS quiere poder construir instancias nuevamente cuando reciba el XML de nuevo. Sin embargo, las interfaces de colección estándar son compatibles de forma nativa.
Con todo, he encontrado que la ruta de DCS es la más rápida y sin dolor.
Como alternativa, también podría investigar el uso de Linq a XML para leer y escribir el XML si desea un control total, pero de todos modos tendrá que procesar los tipos miembro por miembro.
He estado mirando eso recientemente (habiéndolo evitado como la peste porque no pude ver el punto) después de haber leído sobre ello el acceso temprano del nuevo libro de Jon Skeet. Tengo que decir que estoy muy impresionado con lo fácil que es trabajar con XML.
¿Qué 'clases estándar'? Esta pregunta necesita aclaración. –
@DDavies: Creo que quiere decir con XmlDocument, XmlElement, XmlAttribute, etc. ... es decir. las clases de XML compatibles con los estándares W3C. – jrista