簡體   English   中英

使用 System.Text.Json 使用私有設置器反序列化屬性

[英]Use System.Text.Json to deserialize properties with private setters

有沒有辦法使用包含私有設置器屬性的System.Text.Json.JsonSerializer.Deserialize和 object 屬性,並填充這些屬性? (就像Newtonsoft.Json一樣)

在 .NET Core 3.x 中,這是不可能的。 在 .NET 5 時間線中,已添加支持

根據官方文檔(C# 9),您有 2 個選項:

  1. 使用init而不是在屬性上set 例如public string Summary { get; init; } public string Summary { get; init; }
  2. 使用私有設置器在屬性上添加JsonInclude屬性。 例如[JsonInclude] public string Summary { get; private set; } [JsonInclude] public string Summary { get; private set; }

無論哪種方式, JsonSerializer.DeserializeAsync都會為您完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM