Restsharp: Impossible de désérialiser XML dans une liste ?

Créé le 19 avr. 2012  ·  3Commentaires  ·  Source: restsharp/RestSharp

Bonjour, j'utilise RestSharp dans mon projet Windows Phone 7.1.

J'ai une réponse au format XML ici:
https://skydrive.live.com/redir.aspx?cid=0b39f4fbbb0489dd&resid=B39F4FBBB0489DD!139 &parid=B39F4FBBB0489DD!103&authkey=!AOdT-FiS6Mw8v5Y

J'ai essayé de désérialiser cette réponse à une classe:

public class fullWall
{
    public _user user { get; set; }
    public int numberOfFriend { get; set; }
    public int numberOfPhoto { get; set; }
    public List<timhotPhotos> timhotPhotos { get; set; }
    public fullWall()
    {
        timhotPhotos = new List<timhotPhotos>();
    }
}

Toutes les propriétés sont correctes sauf la liste timhotPhotos , comme vous pouvez le voir ici :

GitHub Logo

classe timhotPhotos :

public class timhotPhotos
{
    public string id { get; set; }
    public string title { get; set; }
    public string description { get; set; }
    public string url { get; set; }
    public double width { get; set; }
    public double height { get; set; }
    public DateTime createdDate { get; set; }
    public _user user { get; set; }
    public int numOfComment { get; set; }
    public int numOfRate { get; set; }
    public int numOfView { get; set; }
    public bool rated { get; set; }
}

Où est-ce que je me trompe ?

Commentaire le plus utile

Oh merci :)

Ps: j'ai 21 ans, ravie de vous rencontrer :)

Tous les 3 commentaires

J'ai vu votre question dans StackOverflow, j'y ai répondu, en copiant maintenant ma réponse ici :

Vous devrez changer le désérialiseur XML par défaut en DotNetXmlDeserializer, comme ceci :

RestClient client;

client.AddHandler("application/xml", new DotNetXmlDeserializer());

Ensuite, ajoutez l'attribut XmlElement à la listepropriété timhotPhotos comme celle-ci :

public class fullWall
{
    public _user user { get; set; }
    public int numberOfFriend { get; set; }
    public int numberOfPhoto { get; set; }
    [System.Xml.Serialization.XmlElement()]
    public List<timhotPhotos> timhotPhotos { get; set; }
    public fullWall()
    {
        timhotPhotos = new List<timhotPhotos>();
    }
}

Maintenant ça devrait bien marcher !

Et puisque vous avez accepté la réponse dans StackOverflow, je vais continuer et fermer ce problème ! ;)

Oh merci :)

Ps: j'ai 21 ans, ravie de vous rencontrer :)

Cette page vous a été utile?
0 / 5 - 0 notes