WCF / C#3.5で記述されたクライアント/サーバーアプリケーションがあります。
サーバーは私のローカルタイムゾーンにあり、クライアントは世界中に広がっています。
私の現在の戦略は、サーバーとデータベースのあらゆる場所でUTC DateTimeを使用し、クライアントが受信したUTCDateTimeを正しく処理できるようにすることです。
これは、クライアントがメッセージを受信するたびに、その最初のタスクはメッセージに含まれるDateTimesをUTCからローカルに変換することであることを意味します。
このタスクを支援するために、すべての[DataContract]オブジェクトによって実装されるインターフェイスを定義しました。
public interface IConvertToLocalTime {
void ConvertToLocalTime();
}
したがって、私は通常、サーバーからのメッセージを次のように処理します。
public void ServerCallbackFoo(MyObject a, MyObject2 b)
{
a.ConvertToLocalTime();
b.ConvertToLocalTime();
// my business code goes there
}
これは問題なく機能しますが、変換メソッドを手動で呼び出さなければならないという事実にはあまり満足していません。
このタスクはWCFフレームワークによって管理する必要があるように思われます。私はそこに何かが欠けていますか?変換を自動化するためのより良い方法はありますか?