我有以下 XML:
<Product>
<Categories>
<Id>1</Id>
<Id>2</Id>
<Id>3</Id>
<Id>4</Id>
<Id>5</Id>
<Id>6</Id>
<Id>7</Id>
<Id>8</Id>
</Categories>
</Product>
我正在使用 XmlSerializer
将其反序列化为 .NET 类型。
我的目标是将其取消实现为:
public class Product
{
public List<int> Categories { get; set; }
}
不幸的是,我没有设法将它反序列化为这种类型(Categories
属性为空)。我该怎么做?有什么想法吗?
我设法做到了,但我对这样的解决方案不满意。
[Serializable]
public class Categories
{
[XmlElement]
public List<Int32> Id { get; set; }
}
public class Product
{
public Categories Categories { get; set; }
}
我知道,我可以用 Linq to XML 做到这一点,但我想知道我是否可以用 XmlSerializer
做到这一点。
最佳答案
您可以使用 XmlArray
和 XmlArrayItem
属性:
public class Product
{
[XmlArray]
[XmlArrayItem("Id")]
public List<int> Categories { get; set; }
}
关于c# - XML 列表序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30263736/