2016-12-29 44 views
0

我必須在ASP.NET Core上使用自定義的JsonConverter,我需要將它與JsonInputFormatter一起使用。我發現的唯一方法就是使用AddJsonOption擴展方法是這樣的:具有依賴性的自定義Json轉換器

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)); 

    ... 
} 

仍然感覺有點髒雖然;)

相關問題