C#反序列化数组作为根元素

C# Deserialize Array as root element

我有一个 XML 文档需要反序列化,其中根元素是项目数组,例如

<Items>
  <Item></Item>
  <Item></Item>
</Items>

我尝试创建一个 class 继承自集合,例如...

public class Items : IEnumerable<Item>

但我无法让它工作。我收到一条错误消息,指出 <items> 不是预期的。我什至不确定是否可以做我想做的事。

Items class 的以下声明可按您的需要工作:

[XmlRoot("Items")]
public class Items : List<Item>
{
}

XmlRootAttribute 可以做到这一点,让 XmlSerializer 知道根元素。然后它期望根据 Item class.

命名的项目的元素