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.
命名的项目的元素
我有一个 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.