2009-04-30 2 views
18

Ho una classe contrassegnata con gli attributi DataContract e vorrei creare un XDocument da oggetti di quella classe. Qual è il modo migliore per farlo?Come si serializza un oggetto in un XDocument?

Posso farlo passando tramite un XmlDocument ma questo sembra un passaggio non necessario.

+1

vedere la seconda risposta; Potrei essere stato completamente sbagliato –

risposta

37

È possibile creare un XmlWriter direttamente nella 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

Sei corretto; Sto rimuovendo la mia risposta –

+1

hmm ... sembra che non riesca a cancellare una risposta accettata ... Aggiungerò un commento all'OP invece ... –

+1

-1 Ottimo passo nella giusta direzione, ma manca come una risposta completa alla domanda. Potresti coprire la serializzazione attuale in XDocument? – Levitikon