Tengo una clase que tiene un constructor predeterminado y también un constructor sobrecargado que toma un conjunto de parámetros. Estos parámetros coinciden con los campos del objeto y se asignan en la construcción. En este punto, necesito el constructor predeterminado para otros fines, por lo que me gustaría mantenerlo si puedo.
Mi problema: si elimino el constructor predeterminado y paso la cadena JSON, el objeto se deserializa correctamente y pasa los parámetros del constructor sin ningún problema. Termino recuperando el objeto poblado de la forma que esperaría. Sin embargo, tan pronto como agrego el constructor predeterminado en el objeto, cuando llamo a JsonConvert.DeserializeObject<Result>(jsontext)
las propiedades ya no se rellenan.
En este punto, he intentado agregar new JsonSerializerSettings(){CheckAdditionalContent = true}
a la llamada de deserialización. eso no hizo nada.
Otra nota. los parámetros del constructor coinciden exactamente con los nombres de los campos, excepto que los parámetros comienzan con una letra minúscula. No creo que esto importe ya que, como mencioné, la deserialización funciona bien sin un constructor predeterminado.
Aquí hay una muestra de mis constructores:
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;
}