首页 > 解决方案 > 将重复名称 XML 子节点反序列化为 C# 对象

问题描述

我有一个 XML 结构,它实际上应该是一个数组,但不是这种结构。这是 XML 的表示形式。

<rootElement>
    <foo>...</foo>
    <bar>...</bar>
    <bar>...</bar>
    <bar>...</bar>
</rootElement>

我似乎无法<bar>变成一个数组。我有以下 C# 类来尝试执行此操作。

[XmlRoot("rootElement")]
public class MyClass
{
    [XmlArrayItem("bar")]
    public List<MyItems> Items { get; set; }
}

但它不起作用。我知道我可以使用 XML 文档解析 XML,然后以这种方式将其转换为 C# 对象,但我宁愿只使用 C# 类的属性并使用 XmlSerializer 快速生成对象。

我尝试在 Items 属性上使用各种属性,例如 XmlElement 和 XmlArray,但在反序列化后我一直得到 0 个项目。有没有一种方法可以使用 XmlSerializer 来完成,或者除了使用 XmlDocument 之外我别无选择?

标签: c#xmlserialization

解决方案


推荐阅读