XML列表序列化

本文关键字:序列化 列表 XML | 更新日期: 2023-09-27 17:49:21

我有以下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来做XML,但我想知道我是否可以用XmlSerializer来做。

XML列表序列化

您可以使用XmlArrayXmlArrayItem属性:

public class Product
{
    [XmlArray]
    [XmlArrayItem("Id")]
    public List<int> Categories { get; set; }
}