如何在C#xml serialize中更改元素名称?

时间:2016-01-18 07:55:42

标签: c# xml

我定义了一个简单的类并将其序列化:

    public class Test
    {
        public string Name { set; get; }
    }

我抓住了这个简单的对象,代码如下:

                Test test = new Test();
                test.Name = "a";                    
                TextWriter writer = new StreamWriter(@"D:\a.xml");
                XmlSerializer s = new XmlSerializer(typeof(Test), "");
                s.Serialize(writer, test);
                writer.Close();

a.xml 结果文件如下:

<Test xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="">
  <Name>a</Name>
</Test>

这没问题,但现在我希望我的xml节点内容像这样( 将默认元素名称(如:Test)更改为用户定义名称,无论名称是什么(如:job-scheduling-)数据) ):

<job-scheduling-data xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="">
  <Name>a</Name>
</job-scheduling-data>

我能做些什么来做对吗?我不希望我的班级名称如“ job-scheduling-data ”。

1 个答案:

答案 0 :(得分:2)

[XmlRoot(ElementName = "job-scheduling-data")]
public class Test
{
    public string Name { set; get; }
}

您可以查看this msdn page