C# 如何将对象序列化到XDocument中?

C# 如何将对象序列化到XDocument中?,c#,xml-serialization,C#,Xml Serialization,我有一个用DataContract属性标记的类,我想从该类的对象创建一个XDocument。最好的方法是什么 我可以通过XmlDocument来完成,但这似乎是不必要的步骤。您可以直接在XDocument中创建一个XmlWriter: XDocument doc = new XDocument(); using (var writer = doc.CreateWriter()) { // write xml into the writer var serializer = new

我有一个用DataContract属性标记的类,我想从该类的对象创建一个
XDocument
。最好的方法是什么


我可以通过
XmlDocument
来完成,但这似乎是不必要的步骤。

您可以直接在XDocument中创建一个XmlWriter:

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());

隐马尔可夫模型。。。看来我不能删除一个被接受的答案。。。我将在OP中添加一条评论…-这是朝着正确方向迈出的一大步,但缺少对问题的完整答案。你能在XDocument中涵盖实际的序列化吗?@Levitikon:我编辑了答案,用DataContractSerializer来涵盖序列化。这不起作用。它为我返回了一个空字符串…请参见第二个答案;我可能完全错了