2009-04-30 15 views
18

Tengo una clase que está marcada con atributos DataContract y me gustaría crear un XDocument a partir de objetos de esa clase. ¿Cuál es la mejor manera de hacer esto?¿Cómo serializo un objeto en un XDocument?

Lo puedo hacer pasando por un XmlDocument pero esto parece un paso innecesario.

+1

Véase la segunda respuesta; Pude haber estado completamente equivocado –

Respuesta

37

Se puede crear un XmlWriter directamente en el XDocument:

XDocument doc = new XDocument(); 
using (var writer = doc.CreateWriter()) 
{ 
    // write xml into the writer 
    var serializer = new DataContractSerializer(objectToSerialize.GetType()); 
    serializer.WriteObject(writer, objectToSerialize); 
} 
Console.WriteLine(doc.ToString()); 
+2

Estás en lo correcto; Estoy eliminando mi respuesta –

+1

hmm ... parece que no puedo eliminar una respuesta aceptada ... Añadiré un comentario al OP en su lugar ... –

+1

-1 Gran paso en la dirección correcta, pero carece de una respuesta completa a la pregunta. ¿Podría cubrir la serialización real en el XDocument? – Levitikon

Cuestiones relacionadas