2009-04-30 4 views
18

У меня есть класс, отмеченный атрибутами DataContract, и я хотел бы создать XDocument из объектов этого класса. Каков наилучший способ сделать это?Как сериализовать объект в XDocument?

Я могу сделать это, перейдя через XmlDocument, но это кажется ненужным шагом.

+1

Смотрите второй ответ; Возможно, я полностью ошибся –

ответ

37

Вы можете создать XmlWriter непосредственно в 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

Вы правы; Я удаляю свой ответ –

+1

hmm ... кажется, я не могу удалить принятый ответ ... Вместо этого добавлю комментарий к OP ... –

+1

-1 Отличный шаг в правильном направлении, но не хватает полный ответ на вопрос. Не могли бы вы включить фактическую сериализацию в XDocument? – Levitikon