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

Set XML Node name for internal list

我创建这个 class 是为了控制根节点元素。这是有效的

[XmlRoot(ElementName = "MyNode")]
public class Foo : List<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 的 class 名称更改为 MyNextNode 的情况下完成此操作的任何建议(更改 class 名称可获得所需的结果)?

不要在 Bar class 上使用 XmlRoot,而应使用 XmlTypeAttribute:

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