我有一个客户端/服务器应用程序,用 WCF / C#3.5 编写。
服务器位于我的本地时区,客户端分布在世界各地。
我目前的策略是在服务器和数据库中的任何地方使用 UTC DateTime,并让客户端正确处理他们收到的 UTC DateTime。
这意味着每次客户端收到一条消息时,它的第一个任务就是将消息中包含的 DateTimes 从 UTC 转换为 Local。
我定义了一个接口,由我的所有 [DataContract] 对象实现以帮助完成此任务:
public interface IConvertToLocalTime {
void ConvertToLocalTime();
}
所以我通常以这种方式处理来自服务器的消息:
public void ServerCallbackFoo(MyObject a, MyObject2 b)
{
a.ConvertToLocalTime();
b.ConvertToLocalTime();
// my business code goes there
}
这很好用,但我对必须手动调用转换方法这一事实并不满意。
在我看来,这个任务应该由 WCF 框架来管理。我在那里错过了什么吗?有没有更好的方法来自动化转换?