C# 使用System.Text.Json使用私有setter反序列化属性

C# 使用System.Text.Json使用私有setter反序列化属性,c#,serialization,system.text.json,C#,Serialization,System.text.json,有没有一种方法可以使用System.Text.Json.JsonSerializer.对包含私有setters属性的对象进行反序列化,并填充这些属性?(就像Newtonsoft.Json一样)在.NETCore3.x中,这是不可能的。在.NET 5 timeline中,.根据(C#9),您有两个选项: 在属性上使用init而不是set。例如,公共字符串摘要{get;init;} 在带有私有setter的属性上添加jsonclude属性。例如,[JsonInclude]公共字符串摘要{get;pr

有没有一种方法可以使用System.Text.Json.JsonSerializer.对包含私有setters属性的对象进行反序列化,并填充这些属性?(就像Newtonsoft.Json一样)

在.NETCore3.x中,这是不可能的。在.NET 5 timeline中,.

根据(C#9),您有两个选项:

  • 在属性上使用
    init
    而不是
    set
    。例如,
    公共字符串摘要{get;init;}
  • 在带有私有setter的属性上添加
    jsonclude
    属性。例如,
    [JsonInclude]公共字符串摘要{get;private set;}

  • 无论哪种方式,它都会为您完成。

    事实上,
    init
    这是一个强大的概念,在类似的情况下,它会优雅地完成这项工作<代码>[JsonInclude]这正是我想要的,但它只在.NET 5中可用。