我有一个自定义的过滤器属性,它改编自这个答案,目前已经在.NET Core 2.2中实现,我想将其适应于3.1版本。它引用了Newtonsoft.JSON库,出于兼容性原因,我希望保持这种方式。
代码如下:
public class AllPropertiesAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext ctx)
{
if (!(ctx.Result is ObjectResult objectResult)) return;
var serializer = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Include };
serializer.Converters.Add(new StringEnumConverter());
var formatter = new JsonOutputFormatter(serializer,
ctx.HttpContext.RequestServices.GetRequiredService<ArrayPool<char>>());
objectResult.Formatters.Add(formatter);
}
}
JsonOutputFormatter
只支持到 .net core 2.2,根据官方文档;如果我想在3.1下保持相同的行为,应该如何操作?