自定义类如何与源生成器JsonConverter<>
一起使用?System.Text.Json
我想调用JsonSerializer.Deserialize<MyType[]>()
它不会回退到基于反射的实现并使用自定义MyTypeJsonParser : JsonConverter<MyType>
.
编辑澄清:自定义转换器是为 实现的MyType
,但 json 包含一个对象数组MyType
。因此,我想创建JsonSerializerContext
反序列array
化MyType
对象(MyType[]
)的源生成,使用生成的代码反序列化array
部分和手动转换器反序列MyType
化对象部分。
旧代码(不使用源代码生成器)通过将自定义转换器添加到JsonSerializerOptions.Converters
.
但是,经过进一步研究,我发现Converters
. 文档JsonSourceGenerationOptionsAttribute
中的表格还指出,并且在序列化优化模式中不受支持。因此,目前(.NET 6)似乎不可能将自定义转换器与 json 源生成器混合。JsonConverterAttribute
JsonSerializerOptions.Converters
文档不清楚,至少元数据收集源生成模式是否可以使用JsonConverterAttribute
.