Windows Phone 7でRestSharpを使用します
-
30-09-2019 - |
質問
Restsharpを使用しようとしています(http://restsharp.org/)Windows Phone 7プロジェクトでは、RestSharpが使用するNewtonsoft json.netライブラリに関する問題があります。私が自分のコードをそのように実行しようとしているとき:
_restClient.ExecuteAsync<Model.Song>(restRequest, (response) =>
{
if (response.StatusCode == HttpStatusCode.OK) { }
else { }
});
次のエラーが発生します。
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
Windows Phone 7アプリケーションのビンフォルダーにコピーされているため、デバイスに展開されると仮定していますが、どういうわけかロードしません。誰かが似たようなことを経験/解決しましたか?ありがとう。
要求に応じて、JSONの例: [{"type":"Song","id":60097,"title":"A Place Where You Belong","artist":{"type":"Artist","id":17,"nameWithoutThePrefix":"Bullet For My Valentine","useThePrefix":false}}]
とクラス:
[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; }
}
解決
あなたはどれも必要ありません [DataMember]
属性、それらはRestsharpで使用されていません。
JSONが返されたのは配列であるため、それを配列にゆるくする必要があります。
client.ExecuteAsync<List<Song>>(request, callback);