Разрешить определенные форматы даты и времени в основном приложении asp.net для десериализации json - PullRequest
0 голосов
/ 29 января 2019

Я хочу разрешить определенные форматы даты и времени в моем основном приложении asp.net.

У меня есть этот код в Startup.cs для метода ConfigureServices:

...

services.AddMvc()
.AddJsonOptions(options =>
{
   ...
   options.SerializerSettings.DateFormatString = "dd/MM/yyyy HH:mm";
})

...

Это свойство позволяет только одинформат даты и времени.

Мне нужно что-то вроде этого (со многими допустимыми форматами даты и времени):

...

services.AddMvc()
.AddJsonOptions(options =>
{
   ...
   options.SerializerSettings.DateFormatString = { "dd/MM/yyyy HH:mm", "dd/MM/yyyy HH:mm:ss", "dd/MM/yyyy", ... };
});

...

Спасибо.

1 Ответ

0 голосов
/ 29 января 2019

Это невозможно.Логично, как сериализатор узнает, какой формат на самом деле применяется?Типа Date нет, поэтому DateTime, даже если компонент времени не установлен, все равно равен DateTime и просто вернет время как полночь (00:00:00).

Выборясь здесь с основным недостатком в дизайне API.API не должен возвращать разные типы для одного и того же члена.Если время всегда является компонентом, то время должно присутствовать всегда, даже если оно обнуляется.Возврат разных ответов создает дополнительную, а иногда и невозможную нагрузку на клиента.

...