为内部列表设置XML节点名称

时间:2015-11-14 17:39:46

标签: c# xml serialization xml-serialization

我创建了这个类作为控制根节点元素的方法。这是有效的

[XmlRoot(ElementName = "MyNode")]
public class Foo : List<Bar>{}

Bar看起来像这样

[XmlRoot(ElementName = "MyNextNode")]
public class Bar
{
    public string Code { get; set; }
    public string CodeType { get; set; }
}

输出看起来像这样

<MyNode>
    <Bar>
    </Bar>
</MyNode>

所需的输出是

<MyNode>
    <MyNextNode>
    </MyNextNode>
</MyNode>

有关如何在不更改Bar to MyNextNode的类名的情况下完成此任务的任何建议(更改类名会获得所需的结果)?

1 个答案:

答案 0 :(得分:2)

不应在XmlRoot课程中使用Bar,而应使用XmlTypeAttribute

[XmlType(TypeName = "MyNextNode")]
public class Bar
{
    public string Code { get; set; }
    public string CodeType { get; set; }
}