XML 列表序列化

XML list serialization

我有以下 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 做到这一点。

您可以使用 XmlArrayXmlArrayItem 属性:

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