私はRestSharpをEF4でMVC APIと通信させるのに苦労しており、それを機能させることに非常に近づいています。ストック シリアライザーのインターフェイスの制限を克服するために、Json.NET シリアライザーを使用しています。デシリアライゼーションはそのままで機能しましたが、RestSharp にカスタム シリアライザーを使用させることはできません。メソッドSerialize
が呼び出されていません。すべてがうまくコンパイルされましたが、動作しません。コードは次のとおりです。
var client = CreateClient();
// client.Authenticator = new HttpBasicAuthenticator(username, password);
var request = new RestRequest("api/{type}s", Method.GET);
request.AddUrlSegment("type", typeof(T).Name);
request.RequestFormat = DataFormat.Json;
request.AddParameter("criteria", criteria);
IRestResponse<List<T>> response = client.Execute<List<T>>(request);
HandleResponse(response);
return response.Data;
何か案は?
編集
私は例に従って投稿方法を受け入れるように変更しようとしましたがJObject
、うまくいきました! . しかし、呼び出そうとするとjitem.ToObject<Item>()
、次の例外が発生しました。
Error converting value "System.Collections.Generic.List`1[DataAbstractionLayer.Poco.ItemCheckpoint]" to type 'System.Collections.Generic.ICollection`1[DataAbstractionLayer.Poco.ItemCheckpoint]'.
しかし、もっと興味深いのは内部例外です:
Could not cast or convert from System.String to System.Collections.Generic.ICollection`1[DataAbstractionLayer.Poco.ItemCheckpoint].
Json.NET がコレクション項目を自動的に文字列に変換する可能性はありますか?