繁体   English   中英

如何将对象序列化为 XDocument?

[英]How do I serialize an object into an XDocument?

我有一个标有 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());

我就是这样做的,它提供了干净的 xml,其中没有所有命名空间的东西,

 XDocument xdoc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"));

        using (var writer = xdoc.CreateWriter())
        {
            System.Xml.Serialization.XmlSerializer x =
            new System.Xml.Serialization.XmlSerializer(objecttoserialize.GetType());

            x.Serialize(writer, objecttoserialize);
        }

        Debug.WriteLine(xdoc.ToString());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM