我正在努力使用EF4与MVC API进行RestSharp对话,我非常接近使其工作。为了克服股票序列化程序的界面限制,我使用的是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;
有什么想法吗?
修改的
我尝试按照示例更改post方法以接受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自动将集合项转换为字符串吗?