Json.Net 私有 setter 處理
Json.Net 沒有用於在反序列化期間處理私有 setter 的內建預設行為。但是,它確實提供了一種使用屬性明確指定此行為的方法。
[JsonProperty] 屬性
[JsonProperty] 屬性可用來指示 Json.Net反序列化時使用私有設定器填入唯讀屬性。將此屬性新增至唯讀屬性將允許在反序列化期間設定它。
範例:
[JsonProperty] public Guid? ClientId { get; private set; }
替代解:帶參數的建構子
處理私有設定器的另一種方法是提供一個建構函數,該構造函數的參數與您要設定的屬性相符。反序列化 JSON 物件時將使用此建構函式。
範例:
public class Foo { public string Bar { get; } public Foo(string bar) { Bar = bar; } }
這樣,您可以像這樣反序列化JSON 字串:
string json = "{ \"bar\": \"Stack Overflow\" }"; var deserialized = JsonConvert.DeserializeObject<Foo>(json); Console.WriteLine(deserialized.Bar); // Stack Overflow
其中使用的解決方案取決於您的應用程式的具體要求。 [JsonProperty] 屬性提供了一種處理私有 setter 的簡單方法,但它需要對屬性進行屬性修飾。使用建構函數的替代方法避免了屬性修飾,並且適用於私有和公用設定器。
以上是在使用 Json.Net 進行 JSON 反序列化期間如何處理私有 Setter?的詳細內容。更多資訊請關注PHP中文網其他相關文章!