Json.Net プライベート セッターの処理
Json.Net には、逆シリアル化中にプライベート セッターを処理するためのデフォルトの動作が組み込まれていません。ただし、属性を使用してこの動作を明示的に指定する方法は提供されます。
[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
Which使用するソリューションは、アプリケーションの特定の要件によって異なります。 [JsonProperty] 属性はプライベート セッターを処理する簡単な方法を提供しますが、プロパティの属性装飾が必要です。コンストラクターを使用する別のアプローチでは、属性の装飾が回避され、プライベート セッターとパブリック セッターの両方で機能します。
以上がJson.Net での JSON デシリアライゼーション中にプライベート セッターを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。