1

このようなサービスから取得した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クラスに問題があると感じていますが、それを機能させるために何を適用すればよいかわかりません

ありがとう

4

1 に答える 1

2

これを逆にすると、問題がすぐに見つかります。要素名が「ArrayOfPools」でないことを確認するために、Pools クラスには [XmlRoot] 属性が必要です。

[XmlRoot("Pools")]
public class Pools : List<Pool> {
   // etc...
}
于 2012-05-07T20:39:42.613 に答える