2012-05-07 6 views
1

У меня есть XML, что я получаю от сервиса, который выглядит как этотКак сделать этот класс deserializable

<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, но я не уверен, что применять, чтобы заставить его работать

Thanks

+1

Какая ошибка вы получаете? – zimdanen

+1

Похоже, вам нужно создать свойство 'Pools' для класса с атрибутом' [XmlElement ("Pool")] '... – Tejs

ответ

2

Сделайте это наоборот, и вы быстро найдете проблему. Для вашего класса Pools требуется атрибут [XmlRoot], чтобы гарантировать, что имя элемента не является «ArrayOfPools».

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

Вау ... это было легко, спасибо за ваш быстрый ответ! – Zholen

Смежные вопросы