Как сериализовать объект в XDocument?

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

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


person Simon Keep    schedule 30.04.2009    source источник
comment
Смотрите второй ответ; может я совсем ошибся   -  person Marc Gravell    schedule 30.04.2009


Ответы (1)


Вы можете создать 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());
person marklam    schedule 30.04.2009
comment
хм... кажется, я не могу удалить принятый ответ... вместо этого я добавлю комментарий к ОП... - person Marc Gravell; 30.04.2009
comment
-1 Отличный шаг в правильном направлении, но не хватает полного ответа на вопрос. Не могли бы вы рассказать о фактической сериализации в XDocument? - person Levitikon; 23.01.2012
comment
@Levitikon: я отредактировал ответ, чтобы охватить сериализацию с использованием DataContractSerializer. - person ckarras; 09.08.2012
comment
Это не работает. Он вернул мне пустую строку... - person Kellen Stuart; 01.07.2020