Saya memiliki kelas yang memiliki konstruktor default dan juga konstruktor kelebihan beban yang menggunakan satu set parameter. Parameter ini cocok dengan bidang pada objek dan ditugaskan pada konstruksi. Pada titik ini saya memerlukan konstruktor default untuk keperluan lain jadi saya ingin menyimpannya jika saya bisa.
Masalah saya: Jika saya menghapus konstruktor default dan meneruskan string JSON, objek deserializes dengan benar dan melewati parameter konstruktor tanpa masalah. Saya akhirnya mendapatkan kembali objek yang dihuni seperti yang saya harapkan. Namun, segera setelah saya menambahkan konstruktor default ke objek, ketika saya memanggil JsonConvert.DeserializeObject<Result>(jsontext)
properti tidak lagi diisi.
Pada titik ini saya telah mencoba menambahkan new JsonSerializerSettings(){CheckAdditionalContent = true}
panggilan deserialization. itu tidak melakukan apa-apa.
Catatan lain. parameter konstruktor benar-benar cocok dengan nama-nama bidang kecuali bahwa parameter dimulai dengan huruf kecil. Saya tidak akan berpikir ini akan menjadi masalah karena, seperti yang saya sebutkan, deserialisasi berfungsi dengan baik tanpa konstruktor default.
Berikut ini contoh konstruktor saya:
public Result() { }
public Result(int? code, string format, Dictionary<string, string> details = null)
{
Code = code ?? ERROR_CODE;
Format = format;
if (details == null)
Details = new Dictionary<string, string>();
else
Details = details;
}