序列化到XDocument时,我尝试更改根名称。
我尝试序列化一个(n inner)类并获得根名称Test.MyClass
。
我尝试使用XmlRoot
属性进行更改,但没有任何反应。更改根名称的诀窍是什么?还是我将XDocument用于它无法完成的事情?
[TestClass]
public class MyTestClass
{
[TestMethod]
public void TestMethod()
{
var res = Serialise(new MyClass());
}
private static XDocument Serialise(object objectToSerialize)
{
var doc = new XDocument();
using (var writer = doc.CreateWriter())
{
var serializer = new DataContractSerializer(objectToSerialize.GetType());
serializer.WriteObject(writer, objectToSerialize);
}
return doc;
}
[XmlRoot("NewName")]
public class MyClass { }
}
我明白了
<MyTestClass.MyClass/>
但我想要
<NewName/>
答案 0 :(得分:1)
如the documentation中所述,您需要在将要使用DataContract
的类上使用Serializable
或DataContractSerializer
属性。 XmlRoot
属性与XmlSerializer
配合使用,如jdweng中的@ their comment所示。