首頁 >後端開發 >C++ >如何將私有 Setter 設定為 Json.Net 中的預設行為?

如何將私有 Setter 設定為 Json.Net 中的預設行為?

DDD
DDD原創
2025-01-04 13:08:40838瀏覽

How Can I Set Private Setters as the Default Behavior in Json.Net?

預設在Json.Net 中設定私有setter

雖然Json.Net 提供了一個屬性來明確處理私有setter,但這種願望可能存在將此行為設為預設行為。雖然可以選擇調整原始碼,但還有其他方法可以實現此目的:

使用[JsonProperty] 屬性

如果唯一目的是填充唯讀屬性在反在序列化期間,應用[JsonProperty] 屬性就足夠了。例如:

[JsonProperty]
public Guid? ClientId { get; private set; }

帶參數的建構子

考慮提供一個與屬性相符的參數的建構函數,如下:

public class Foo
{
    public string Bar { get; }

    public Foo(string bar)
    {
        Bar = bar;
    }
}

這種方法允許序列化和反序列化:

string json = "{ \"bar\": \"Stack Overflow\" }";

var deserialized = JsonConvert.DeserializeObject<Foo>(json);
Console.WriteLine(deserialized.Bar); // Stack Overflow

構造函數方法的好處:

  • 消除了對屬性修飾的需要
  • 適用於{ get;私人套裝; } 和{ 得到; }屬性

以上是如何將私有 Setter 設定為 Json.Net 中的預設行為?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn