2011-11-11 1 views
2

私のレストサービスでは、すべてのリクエストとレスポンスの日付形式としてISO 8601が使用されています。 RestClientにこれを設定する方法はありますか、それとも個々の個人に設定する必要がありますかRestRequest特定のクライアントでRestsharp要求すべてに使用するDateFormatを指定するにはどうすればよいですか?

+0

私はRestRequestから継承したDateFormatをオーバーライドするために言うつもりでしたそれはマークされた仮想ではない。 –

+0

私は 'RestRequest'を作成するためにファクトリメソッドを使いました。最高の解決策ではなく、私の意見でシリアライザをオーバーライドするよりもやや簡単です。 –

+0

@BryanAnderson:出力フォーマットにXMLまたはJSONを使用していますか? DateFormatプロパティはRestSharpのシリアライザのXML側でのみ使用されるように見えます。 –

答えて

3

このような機能は組み込まれていないようです。 Newtonsoft.Jsonは、あなたが探しているシリアライゼーションを行うことができるIsoDateTimeConverterを提供します。シリアライゼーションに使用するためには、RestSharpバージョンと同じように、自分のISerializerでRestSharp.Serializers.JsonSerializerをほとんど複製する必要がありますが、作成されたインスタンスで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を個々のRestRequestに置く必要はありません。 –

+0

@BryanAndersonあなたはヘルパーメソッド/ファクトリを使って 'RestRequest'を作成することができました – drzaus

+0

@drzausそれは私がiircをやったことです –