ฉันมีคลาสที่มีคอนสตรัคเตอร์เริ่มต้นและคอนสตรัคเตอร์โอเวอร์โหลดที่ใช้ในชุดพารามิเตอร์ พารามิเตอร์เหล่านี้จับคู่กับเขตข้อมูลบนวัตถุและได้รับมอบหมายในการก่อสร้าง ณ จุดนี้ฉันต้องการตัวสร้างเริ่มต้นสำหรับวัตถุประสงค์อื่น ๆ ดังนั้นฉันต้องการเก็บไว้ถ้าฉันสามารถ
ปัญหาของฉัน: ถ้าฉันลบตัวสร้างเริ่มต้นและส่งผ่านในสตริง JSON วัตถุ deserializes อย่างถูกต้องและผ่านในพารามิเตอร์ตัวสร้างโดยไม่มีปัญหาใด ๆ ฉันได้รับวัตถุกลับมาเติมในแบบที่ฉันคาดหวัง อย่างไรก็ตามทันทีที่ฉันเพิ่มนวกรรมิกเริ่มต้นลงในวัตถุเมื่อฉันเรียกJsonConvert.DeserializeObject<Result>(jsontext)
คุณสมบัติที่จะไม่บรรจุอีกต่อไป
ณ จุดนี้ฉันได้ลองเพิ่มnew JsonSerializerSettings(){CheckAdditionalContent = true}
การโทรดีซีเรียลไลเซชั่น ที่ไม่ได้ทำอะไรเลย
หมายเหตุอื่น พารามิเตอร์ตัวสร้างตรงกับชื่อของเขตข้อมูลอย่างแน่นอนยกเว้นว่าพารามิเตอร์จะเริ่มต้นด้วยตัวอักษรตัวพิมพ์เล็ก ฉันไม่คิดว่าจะเป็นเช่นนี้เพราะอย่างที่ฉันได้กล่าวไว้การดีซีเรียลไลเซชั่นใช้งานได้ดีโดยไม่มีคอนสตรัคเตอร์เริ่มต้น
นี่คือตัวอย่างของการก่อสร้างของฉัน:
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;
}