Как мне указать DateFormat, который будет использоваться для всех запросов Restsharp на данном клиенте? - PullRequest
2 голосов
/ 11 ноября 2011

Моя служба отдыха использует ISO 8601 в качестве формата даты для всех запросов и ответов.Есть ли способ установить это на RestClient или мне нужно установить его на каждом отдельном RestRequest?

1 Ответ

3 голосов
/ 11 ноября 2011

Не похоже, что есть какая-то встроенная способность сделать это.Newtonsoft.Json предоставляет IsoDateTimeConverter, который может выполнять сериализацию, которую вы ищете.Чтобы использовать его для сериализации, я думаю, что вам нужно будет в основном дублировать RestSharp.Serializers.JsonSerializer в вашем собственном ISerializer, который почти точно делает то же, что и версия RestSharp, но настроить свойство NewtonSoft.Json.JsonSerializer.Converters в созданном экземпляре. здесь и добавляет / заменяет конвертер даты / времени.

Что касается десериализации, вы должны иметь возможность установить свойство IDeserializer.DateFormat в новом JsonDeserializer и установить его в качестве своего обработчика:

client.AddHandler ("application/json", new JsonDeserializer() { DateFormat = "yyyy-MM-ddTHH\:mm\:ss.fffffffzzz" });
...