デフォルトで Json.Net にプライベート セッターを設定する
Json.Net にはプライベート セッターを明示的に処理するための属性が用意されていますが、そのような要望が存在する可能性があります。この動作をデフォルトとして設定します。ソース コードを調整することはオプションですが、これを実現する別のアプローチもあります。
[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
コンストラクターアプローチの利点:
以上がJson.Net のデフォルト動作としてプライベート セッターを設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。