2011-11-11 4 views
2

내 휴식 서비스는 모든 요청 및 응답의 날짜 형식으로 ISO 8601을 사용합니다. RestClient에 이것을 설정하는 방법이 있습니까, 아니면 각 개인에 설정해야합니까? RestRequest?주어진 클라이언트에서 모든 Restsharp 요청에 사용할 DateFormat을 어떻게 지정합니까?

+0

내가가는 것은 RestRequest에서 상속 말을하고 DateFormat의를 재정의 하지만 그 표시되지 않은 가상. –

+0

필자는 단지'RestRequest'를 만들기 위해 factory 메소드를 사용했다. 가장 좋은 해결책은 아니지만 제 생각에는 시리얼 라이저를 오버라이드하는 것보다 쉽습니다. –

+0

@BryanAnderson : 출력 형식으로 XML 또는 JSON을 사용하고 있습니까? DateFormat 속성은 RestSharp의 serializer의 XML 쪽에서 만 사용되는 것으로 나타납니다. –

답변

3

그렇게 할 수있는 기능이 내장 된 것처럼 보이지 않습니다. Newtonsoft.Json은 찾고있는 직렬화를 수행 할 수있는 IsoDateTimeConverter를 제공합니다. 직렬화에 사용하려면 RestSharp 버전이하는 것과 거의 똑같은 RestSharp.Serializers.JsonSerializer를 자신의 ISerializer에 복제해야하지만 생성 된 인스턴스에서 NewtonSoft.Json.JsonSerializer.Converters 속성을 조정해야한다고 생각합니다. here 및 날짜/시간 변환기를 추가/대체합니다.

지금까지 직렬화와 같은, 새 JsonDeserializer에 IDeserializer.DateFormat 속성을 설정할 수 있어야하고 핸들러로한다는 설정 :

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

"RestRequest.DateFormat' 재산. 나는'RestClient'에 그것을 설정하는 방법이 있기를 바랐으므로 각각의 RestRequest에 넣지 않아도됩니다. –

+0

@BryanAnderson 당신은 도우미 메서드/공장을 사용하여 RestRequest를 만들 수 있습니다 – drzaus

+0

@drzaus 그게 제가 iirc –

관련 문제