【发布时间】:2009-04-30 09:28:48
【问题描述】:
我有一个标有 DataContract 属性的类,我想从该类的对象创建一个 XDocument。这样做的最佳方法是什么?
我可以通过XmlDocument 来做到这一点,但这似乎是一个不必要的步骤。
【问题讨论】:
-
看第二个答案;我可能完全错了
标签: c# xml-serialization
我有一个标有 DataContract 属性的类,我想从该类的对象创建一个 XDocument。这样做的最佳方法是什么?
我可以通过XmlDocument 来做到这一点,但这似乎是一个不必要的步骤。
【问题讨论】:
标签: c# xml-serialization
您可以直接在 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());
【讨论】: