Json.Net Private Setter Handling
Json.Net tidak mempunyai gelagat lalai terbina dalam untuk mengendalikan private setter semasa penyahserialisasian. Walau bagaimanapun, ia menyediakan cara untuk menentukan tingkah laku ini secara eksplisit menggunakan atribut.
Atribut [JsonProperty]
Atribut [JsonProperty] boleh digunakan untuk mengarahkan Json.Net untuk mengisi harta baca sahaja dengan penetap persendirian apabila penyahserikatan. Menambah atribut ini pada sifat baca sahaja akan membolehkannya ditetapkan semasa penyahserikatan.
Contoh:
[JsonProperty] public Guid? ClientId { get; private set; }
Penyelesaian Alternatif: Pembina dengan Parameter
Pendekatan lain untuk mengendalikan penetap persendirian ialah menyediakan pembina yang mempunyai parameter yang sepadan dengan harta yang anda ingin tetapkan. Pembina ini akan digunakan apabila menyahsiri objek JSON.
Contoh:
public class Foo { public string Bar { get; } public Foo(string bar) { Bar = bar; } }
Dengan cara ini, anda boleh menyahsiri rentetan JSON seperti ini:
string json = "{ \"bar\": \"Stack Overflow\" }"; var deserialized = JsonConvert.DeserializeObject<Foo>(json); Console.WriteLine(deserialized.Bar); // Stack Overflow
Yang manakah penyelesaian untuk digunakan bergantung pada keperluan khusus aplikasi anda. Atribut [JsonProperty] menyediakan cara mudah untuk mengendalikan penetap peribadi, tetapi ia memerlukan hiasan atribut pada sifat. Pendekatan alternatif menggunakan pembina mengelakkan hiasan atribut dan berfungsi dengan kedua-dua penetap peribadi dan awam.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Penetapan Peribadi Semasa Penyahserialisasian JSON dengan Json.Net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!