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