我有一个用WCF/C#3.5编写的客户端/服务器应用程序。在WCF客户端/服务器应用程序中计算UTC /本地日期时间转换的最佳方法
服务器位于本地时区,客户端遍布全球。
我目前的策略是在服务器和数据库的任何地方使用UTC DateTime,并让客户端正确处理它们接收的UTC日期时间。
这意味着每次客户端收到一条消息时,它的第一个任务就是将消息中包含的日期时间从UTC转换为本地。
我定义一个接口,通过我所有的[DataContract]对象来实现,以帮助这个任务:
public interface IConvertToLocalTime {
void ConvertToLocalTime();
}
所以我通常处理来自服务器的消息是这样的:
public void ServerCallbackFoo(MyObject a, MyObject2 b)
{
a.ConvertToLocalTime();
b.ConvertToLocalTime();
// my business code goes there
}
这工作正常,但我不太满意的事实,我必须手动调用转换方法。
在我看来,这个任务应该由WCF框架来管理。我在那里错过了什么?有没有更好的方法来自动化转换?
好的,所以你的意思是我应该检查每个DateTime getter,如果我在服务器或客户端上,以便只在需要时才进行转换,就是这样吗?这是一个好主意:) – Brann 2009-02-04 22:04:43
没错。这样,时间才会根据需要进行转换。它消除了显式调用并使解决方案更加优雅。 – 2009-02-04 22:34:33