Json.Net でのプライベート セッターの動作の構成
Json.Net ではプライベート セッターに対応する属性が提供されていますが、これはこの機能のデフォルト オプションです求められることが多いです。ソース コードに変更がない場合、次のような疑問が生じます: この動作を実現するための構成可能な設定はありますか?
回答
オプション 1: [ JsonProperty] Attribute
特定の属性に依存する代わりに、 [JsonProperty] 属性を使用するだけで、逆シリアル化中に読み取り専用プロパティを設定することができます。例:
[JsonProperty] public Guid? ClientId { get; private set; }
オプション 2: コンストラクターベースのソリューション
別のアプローチには、プライベート プロパティに一致するパラメーターを持つコンストラクターを作成することが含まれます:
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 サイトの他の関連記事を参照してください。