如何使这个类可反序列化

时间:2012-05-07 20:32:11

标签: c# serialization deserialization

我有一些xml,我从一个看起来像这样的服务

<Pools>
    <Pool Code="WN" Name="Win" /> 
    <Pool Code="PL" Name="Place" /> 
    <Pool Code="SH" Name="Show" /> 
    <Pool Code="EX" Name="Exacta" /> 
    <Pool Code="PE" Name="Perfecta (Exacta)" /> 
</Pools>

我想将其反序列化为以下类

public class Pools : List<Pool>
{
    public Pools() { }
public Pools(int capacity) : base(capacity){ }
}

public class Pool
{
    [XmlAttribute("Code")]
    public string Code { get; set; }
    [XmlAttribute("Name")]
    public string Name { get; set; }

    public Pool() {}

    public Pool(string code, string name)
    {
        Code = code;
        Name = name;
    }
}

但它一直在失败,我不确定我做错了什么...... 我觉得它与Pools类存在问题,但我不确定应该使用什么来使其工作

由于

1 个答案:

答案 0 :(得分:2)

反过来这样做,你会很快发现问题。您的Pools类需要[XmlRoot]属性以确保元素名称不是“ArrayOfPools”。

[XmlRoot("Pools")]
public class Pools : List<Pool> {
   // etc...
}