2016-12-29 4 views
0

Я должен использовать пользовательский JsonConverter с ядром ASP.NET по причине, и мне нужно использовать его с JsonInputFormatter. Единственный способ я нашел, чтобы использовать AddJsonOption метод расширения, как это:Пользовательский конвертер Json с dependecy

services 
    .AddMvc() 
    .AddJsonOptions(jso => jso.SerializerSettings.Converters.Add(new CustomConverter())) 

Но у него есть недостаток: CustomConverter требует зависимость от DI контейнера, который не может быть легко решена во время конфигурации. Итак, вопрос: есть ли какой-нибудь программист, способный предоставить JsonConverter с зависимостью от ASP.NET Core JsonInputFormatter?

ответ

1

Одним из быстрых способов было бы отложить его до метода Configure.

public Confiugre(IAppBuilder app, IOptions<MvcOptions> mvcOptions, IOptions<MvcJsonOptions> jsonOptions) 
{ 
    var formatter = mvcOptions.InputFormatters.OfType<JsonInputFormatter>().Single(); 
    jsonOptions.SerializerSettings.Converters.Add(
     new CustomConverter(formatter)); 

    ... 
} 

все еще чувствует себя немного грязный, хотя;)

Смежные вопросы