【发布时间】:2021-05-05 15:32:44
【问题描述】:
我编写了自己的 JsonConverter(使用 ASP.Net Core 3.1),打算在我的 DTO 上使用它。
在以前的版本(Newtonsoft.Json)中,您可以在自定义 JsonConverter 类上添加构造函数,并使用 JsonConverterAttribute 指定参数:
[JsonConverter(typeof(MyDecimalConverter), 3)]
public decimal MyProp { get; set; }
但是,在迁移到System.Text.Json.Serialization 之后,此选项不再存在。新的 JsonConverterAttribute 根本没有构造函数。
实现这一目标的新方法是什么?
【问题讨论】:
-
您是否尝试访问文档?
-
看起来这不是开箱即用的。 JsonConverterAttribute 与 ConverterParameters 没有任何相似之处。 migration guide 甚至没有提到编译时转换器属性。您可能需要根据需要对您的
MyDecimalConverter进行子类化,例如MyDecimalConverter3Digit。 -
如果您将转换器应用于类型而不是属性,我可以想象解决方法,但我看不出有任何方法让转换器知道应用了它的属性。跨度>
-
@PavelAnikhouski 是的,是吗?
-
@dbc 是的,到目前为止,这也是我的结论。虽然有点不那么优雅..
标签: json .net asp.net-core json.net