私のレストサービスでは、すべてのリクエストとレスポンスの日付形式としてISO 8601が使用されています。 RestClient
にこれを設定する方法はありますか、それとも個々の個人に設定する必要がありますかRestRequest
?特定のクライアントでRestsharp要求すべてに使用するDateFormatを指定するにはどうすればよいですか?
答えて
このような機能は組み込まれていないようです。 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" });
'RestRequest.DateFormat'プロパティ。私は 'RestClient'に設定する方法があることを期待していたので、RestRequestを個々のRestRequestに置く必要はありません。 –
@BryanAndersonあなたはヘルパーメソッド/ファクトリを使って 'RestRequest'を作成することができました – drzaus
@drzausそれは私がiircをやったことです –
私はRestRequestから継承したDateFormatをオーバーライドするために言うつもりでしたそれはマークされた仮想ではない。 –
私は 'RestRequest'を作成するためにファクトリメソッドを使いました。最高の解決策ではなく、私の意見でシリアライザをオーバーライドするよりもやや簡単です。 –
@BryanAnderson:出力フォーマットにXMLまたはJSONを使用していますか? DateFormatプロパティはRestSharpのシリアライザのXML側でのみ使用されるように見えます。 –