Gab*_*ton 3 c# serialization system.text.json
有没有办法将System.Text.Json.JsonSerializer.Deserialize与包含私有 setter 属性的对象一起使用,并填充这些属性?(就像Newtonsoft.Json那样)
Ale*_*aus 37
根据官方文档(C# 9),您有 2 个选项:
使用init而不是set在财产上。例如public string Summary { get; init; }
JsonInclude使用私有设置器在属性上添加属性。例如
[JsonInclude]
public string Summary { get; private set; }
Run Code Online (Sandbox Code Playgroud)
一个额外的选项(从 .NET 5 开始)将private通过添加相同的JsonInclude属性 ( docs ) 或设置JsonSerializerOptions.IncludeFields选项 ( example ) 来处理字段。这在意识形态上是否正确是另一个问题......
无论哪种方式,JsonSerializer.DeserializeAsync都会为您完成。