2010-08-23 1 views
0

Есть ли способ предотвратить использование Silverlight/RIA Services для преобразования объекта datetime на провод?Инвариантные даты с услугами WCF RIA

Прямо сейчас, я вижу, что datetimes устанавливаются в «Local» или «Unspecified», которые преобразуются в локальное время сервера, когда они отправляются по проводу.

Например:

клиент и сервер находятся в UTC -04: 00: 00.

  • Я использую DateTime.Today (вид либо локальный, либо не заданный, это не имеет значения) на клиенте Silverlight. Я вижу 23/08/2010 00:00:00.
  • Я отправляю свои изменения и просматриваю данные по проводу. Поле указано в 23/08/2010 00:00:00 (-04: 00: 00).

Отлично. Теперь я меняю своего клиента на UTC +12: 00: 00

  • Я использую DateTime.Today на клиенте, и теперь я вижу 24/08/2010 00:00:00.
  • ОДНАКО - Я отправляю свои изменения и снова просматриваю данные. Теперь я вижу 23/08/2010 08:00:00 (-04: 00: 00).

Таким образом, очевидно, что сериализатор конвертируется в локальное время сервера, чего я не хочу. Значение, которое я хочу в БД, - 24/08/2010 00:00:00.

Использование UTC не является отличным вариантом для этого поля, так как база данных является частью нашего устаревшего приложения, а столбец содержит инвариантные даты на данный момент. Я не хочу начинать вставлять время UTC вместе с существующими данными.

Любые идеи?

Заранее спасибо

ответ

2

Если я создаю DateTime как это, он работает:

new DateTime(DateTime.Now.Ticks, DateTimeKind.Unspecified).Date; 
+0

Прекрасно работает, спасибо! – msmucker0527