Я пытаюсь заменить средство форматирования Json на Json.Net, поэтому я могу получать даты ISO вместо «/ Date (1379112467317) /»
Я также позволяю .Net (WebForms) автоматически обрабатывать сериализацию/десериализацию Json через [WebMethod]. Которые, похоже, не используют средство форматирования Json.Net.
В моем файле global.asax я вижу, как старый форматировщик MS Json удаляется, а новый форматировщик Json.net добавляется с помощью IsoDateTimeConverter.
Но мой [веб-метод] по-прежнему возвращается со старыми строками /Date()/ json вместо дат Iso. Нужно ли мне делать что-то особенное в моем файле global.asax, чтобы автомагия [Webmethod] использовала новый модуль форматирования?
Вот код в глобальном:
Как показано в: http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx
var formatter = config.Formatters.Where(f => { return f.SupportedMediaTypes.Any(v => v.MediaType.Equals("application/json", StringComparison.CurrentCultureIgnoreCase)); }).FirstOrDefault();
if (formatter != null)
{
config.Formatters.Remove(formatter);
}
JsonSerializerSettings serializerSettings = new JsonSerializerSettings();
serializerSettings.Converters.Add(new IsoDateTimeConverter());
config.Formatters.Add(new JsonNetFormatter(serializerSettings));