我必须使用ASP.NET核心使用自定义JsonConverter
,而我需要将其与JsonInputFormatter
一起使用。我发现的唯一方法是使用AddJsonOption
扩展方法:
services
.AddMvc()
.AddJsonOptions(jso => jso.SerializerSettings.Converters.Add(new CustomConverter()))
,但它有一个缺陷:CustomConverter
需要从DI容器中的依赖关系,该依赖性在配置时间无法轻松求解。因此,问题:是否有任何程序员友好的方式来提供对ASP.NET CORE JsonInputFormatter
的JsonConverter
?
一个快速的解决方法是将其推迟到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));
...
}
仍然有点脏;)