Custom Json Converter with dependecy

时光怂恿深爱的人放手 提交于 2020-01-03 03:56:06

问题


I have to use a custom JsonConverter with ASP.NET Core for a reason, and I need to use it with JsonInputFormatter. The only way I've found is to use AddJsonOption extension method like this:

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

But it has a flaw: CustomConverter requires a dependency from a DI container which cannot be easily solved at configuration time. So the question: is there any programmer friendly way to supply a JsonConverter with dependency to ASP.NET Core JsonInputFormatter?


回答1:


One quick workaround would be to postpone it to the Configure method.

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

    ...
}

Still feels a bit dirty though ;)



来源:https://stackoverflow.com/questions/41387357/custom-json-converter-with-dependecy

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!