WCF: есть ли способ вернуть другую сериализацию даты и времени на основе заголовка http Accept-Language? - PullRequest
0 голосов
/ 01 декабря 2009

Я бы хотел, чтобы моя служба REST возвращала DateTime как:

  • 01- dec -2009 для Accept-Language: en-US
  • 01- dez -2009 для Accept-Language: pt-BR

Спасибо!

Андре Карлуччи

Ответы [ 2 ]

0 голосов
/ 02 декабря 2009

Я бы сказал, что «сериализация» означает «преобразование чего-либо в текстовый формат для обмена / хранения», а не для представления читателю.

По этому определению, он должен быть независимым от языка и следовать соглашению о сериализации XML, или ISO 8601, или CultureInfo :: InvariantCulture. См. Также http://www.mihai -nita.net / article.php? ArtID = 20051025a

Если мы не будем называть это "сериализацией", тогда

0 голосов
/ 01 декабря 2009

Как вы сериализуете эти DateTimes?

Мне кажется, что они были преобразованы в строки, и в этом случае вы сможете проверить свойство Request.UserLanguages ​​ и вставить соответствующий CultureInfo в обычный вызов string.Format () .

Стандартный XML-сериализатор использует независимый от культуры формат, объясненный здесь :

DateTime указывается в следующей форме "ГГГГ-ММ-ДД Чт: мм: сс", где:

  • ГГГГ обозначает год
  • ММ обозначает месяц
  • ДД указывает день
  • T указывает начало требуемого отрезка времени
  • чч указывает на час
  • мм обозначает минуты
  • сс указывает на второе

Обратите внимание, что они должны быть в UTC.

...