自定义JSON转换器带有依赖性



我必须使用ASP.NET核心使用自定义JsonConverter,而我需要将其与JsonInputFormatter一起使用。我发现的唯一方法是使用AddJsonOption扩展方法:

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

,但它有一个缺陷:CustomConverter需要从DI容器中的依赖关系,该依赖性在配置时间无法轻松求解。因此,问题:是否有任何程序员友好的方式来提供对ASP.NET CORE JsonInputFormatterJsonConverter

一个快速的解决方法是将其推迟到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));
    ...
}

仍然有点脏;)

相关内容

  • 没有找到相关文章

最新更新