Установить пользовательский JsonConverter на уровне проекта - PullRequest
0 голосов
/ 19 сентября 2019

Я хочу использовать пользовательский конвертер для реквизита типа DateTime для всех моих моделей (преобразовать его в метку времени Unix).

Так что я могу сделать это, добавив атрибут [JsonConverter(...)] для всех моих свойствс типом DateTime.Но тогда вы должны помнить об этом, когда добавляете новые модели / реквизиты с этим типом.

Еще один известный мне способ - добавить мой пользовательский JsonConverter к вызову JsonConvert.SerializeObject (и добавить его ко всемдругие вызовы сериализации / десериализации):

JsonConvert.SerializeObject(dto, new CustomConverter())

Но здесь возникает та же проблема, что и с атрибутом свойства.

Так можно ли установить JsonConverter на уровне проекта?

например, для ответов API я просто добавляю пользовательский JsonConverter на уровне проекта, например:

public void ConfigureServices(IServiceCollection services)
{
    services
        .AddMvc()
        .AddJsonOptions(options => {
            options.SerializerSettings.Converters.Add(new CustomConverter());
        });
}

1 Ответ

0 голосов
/ 19 сентября 2019

Вам не нужен специальный конвертер.Добавьте параметр DateFormatString к текущему сериализатору

services
.AddMvc()  
.AddJsonOptions(options =>  
  {  
    options.SerializerSettings.DateFormatString= "dd-MM-yyyy HH:mm";  
  }); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...