如何获得RestSharp的当前串行器/解串器

时间:2014-07-09 14:32:16

标签: c# deserialization dry restsharp

如何访问RestSharp的当前串行器/解串器?

我正在使用带有以下代码的RestSharp测试API。

var client = new RestClient("http://EDDEVRGATES/Design_Time_Addresses/TaxFormsImportService");
var restRequest = new RestRequest("json/CreateAccount", Method.POST);
restRequest.RequestFormat = DataFormat.Json;
restRequest.AddBody(new Custom
{
    color="blue"
});
var response = client.Execute(restRequest);

我希望能够使用response.Content执行请求时使用的相同序列化程序来反序列化client。我试图避免某种if json使用此反序列化器xml使用此反序列化器。

我无法在RestClientRestRequest上找到序列化程序所在的任何地方。

1 个答案:

答案 0 :(得分:2)

RestSharp为每个mimetype维护一个不同的解串器。

默认情况下,以下mimetypes链接到这些反序列化器:

AddHandler("application/json", new JsonDeserializer());
AddHandler("application/xml", new XmlDeserializer());
AddHandler("text/json", new JsonDeserializer());
AddHandler("text/x-json", new JsonDeserializer());
AddHandler("text/javascript", new JsonDeserializer());
AddHandler("text/xml", new XmlDeserializer());
AddHandler("*", new XmlDeserializer());


如果要使用JsonDeserializer,请确保知道响应mime-type。然后使用 AddHandler("响应mime-type",新的JsonDeserializer())调用来注册那个你要使用JsonDeserializer的mimetype。