У мене клас, який має конструктор за замовчуванням, а також перевантажений конструктор, який приймає набір параметрів. Ці параметри відповідають полям на об'єкті і призначаються при побудові. На даний момент мені потрібен конструктор за замовчуванням для інших цілей, тому я хотів би зберегти його, якщо зможу.
Моя проблема: Якщо я видаляю конструктор за замовчуванням і передаю в рядок JSON, об’єкт правильно деріаріалізується і передає параметри конструктора без проблем. Я в кінцевому підсумку повертаю об'єкт заселеним так, як я очікував. Однак, як тільки я додаю конструктор за замовчуванням в об’єкт, коли я викликаю, 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;
}