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

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

DDD
發布: 2025-01-04 13:08:40
原創
860 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板