我正在努力让 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 自动将集合项转换为字符串?