Есть ли способ изменить сериализацию/десериализацию JSON по умолчанию для DateTime в WCF?
В настоящее время DateTime сериализуется в формате /Date(1372252162657+0200)/
, и это должно быть хорошо, но я столкнулся с проблемами, когда мой сервер не находится в UTC (который я не могу изменить).
Все данные о дате/времени, которые обрабатываются этой службой, находятся в формате UTC. Все работает, когда сервер находится в UTC. Тем не менее, для промежуточных/промежуточных сред установлено значение GMT + 1 (Париж), и сериализатор предполагает, что даты/время находятся в GMT + 1, полностью игнорируя атрибут Kind
. Так что, как вы ожидали, вызов DateTime.SetKind()
и установка его в UTC не будет работать. По сути, сериализованные времена задерживаются на час.
Я могу либо делать двусторонние диалоги даты (это также делает то же самое допущение при десериализации так всегда GMT + 1) разговор дат: от UTC до/от времени сервера, но это утомительно. Поэтому я подумал, что может просто переопределить поведение сериализации по умолчанию.