如何获得restsharp当前的序列化器/反序列化器?

本文关键字:反序列化 序列化 何获得 restsharp | 更新日期: 2023-09-27 18:12:14

如何访问RestSharp当前的序列化器/反序列化器?

我正在测试一个API使用RestSharp与以下代码。

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);

我希望能够使用与client执行请求时使用的相同的序列化器来反序列化response.Content。我试图避免某种如果json使用这个反序列化器,否则xml使用这个反序列化器。

我在RestClientRestRequest上找不到任何序列化器暴露的地方。

如何获得restsharp当前的序列化器/反序列化器?

RestSharp为每个mime类型维护一个不同的反序列化器。

默认情况下,下列mime类型被链接到这些反序列化器:

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,请确保您知道响应时间类型。然后使用AddHandler("response mime-type", new JsonDeserializer())调用来注册想要使用JsonDeserializer的mime类型。