繁体   English   中英

使用XDocument序列化时更改根元素的名称

[英]Change name of root element when serializing with XDocument

我尝试在序列化为XDocument时更改根名称。

我尝试序列化一个(n内部)类,并获得根名称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/>

文档所述,您需要在将要使用DataContractSerializer的类上使用DataContractSerializable属性。 XmlRoot属性用于XmlSerializer ,正如@jdweng其注释中指出的那样

暂无
暂无

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

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