Pregunta

Estoy tratando de utilizar RestSharp ( http://restsharp.org/ ) en un Windows Phone 7 proyecto, pero estoy teniendo un problema que parece con la biblioteca Newtonsoft Json.NET que los usos RestSharp. Cuando estoy tratando de ejecutar el código de este modo:

_restClient.ExecuteAsync<Model.Song>(restRequest, (response) =>
{
    if (response.StatusCode == HttpStatusCode.OK) { }
    else { }
});

Estoy recibiendo el siguiente error:

Could not load type 'Newtonsoft.Json.Linq.JArray' from assembly 'Newtonsoft.Json.Compact, Version=3.5.0.0, Culture=neutral, PublicKeyToken=30AD4FE6B2A6AEED'.

Newtonsoft.Json.Compact.dll se copia en la carpeta Bin de mi aplicación de Windows Phone 7, así que estoy asumiendo que se implementa en el dispositivo, pero por alguna razón no lo cargará. Alguien ha experimentado / resuelto algo similar? Gracias.


Como se solicita, un ejemplo de la JSON: [{"type":"Song","id":60097,"title":"A Place Where You Belong","artist":{"type":"Artist","id":17,"nameWithoutThePrefix":"Bullet For My Valentine","useThePrefix":false}}]

Y las clases:

[DataContract]
public class Song
{
    [DataMember(Name = "id")]
    public int Id { get; set; }

    [DataMember(Name = "title")]
    public string Title { get; set; }

    [DataMember(Name = "artist")]
    public Artist Artist { get; set; }
}

[DataContract]
public class Artist
{
    [DataMember(Name = "id")]
    public int Id { get; set; }

    [DataMember(Name = "nameWithoutThePrefix")]
    public string Name { get; set; }

    [DataMember(Name = "useThePrefix")]
    public bool UsePrefix { get; set; }
}
¿Fue útil?

Solución

no necesita ninguno de los atributos [DataMember], no se usan por RestSharp.

Desde el JSON devuelto es una matriz, es necesario que deserializar a una matriz:

client.ExecuteAsync<List<Song>>(request, callback);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top