Varsayılan bir kurucuya ve ayrıca bir dizi parametre alan aşırı yüklenmiş bir kurucuya sahip bir sınıfım var. Bu parametreler nesnedeki alanlarla eşleşir ve yapım sırasında atanır. Bu noktada, başka amaçlar için varsayılan kurucuya ihtiyacım var, bu yüzden eğer yapabiliyorsam onu korumak istiyorum.
Benim Sorunum: Varsayılan kurucuyu kaldırır ve JSON dizesini geçirirsem, nesne doğru şekilde seriyi kaldırır ve herhangi bir sorun olmadan yapıcı parametrelerine geçer. Sonunda beklediğim şekilde nesneyi geri alıyorum. Ancak, varsayılan kurucuyu nesneye ekler koymaz JsonConvert.DeserializeObject<Result>(jsontext)
, özellikleri aradığımda artık doldurulmuyor.
Bu noktada new JsonSerializerSettings(){CheckAdditionalContent = true}
seriyi kaldırma çağrısına eklemeye çalıştım . bu hiçbir şey yapmadı.
Başka bir not. yapılandırıcı parametreleri, parametrelerin küçük harfle başlaması dışında alanların adlarıyla tam olarak eşleşir. Bahsettiğim gibi seriyi kaldırma varsayılan kurucu olmadan iyi çalıştığı için bunun önemli olacağını düşünmüyorum.
İşte kurucularımın bir örneği:
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;
}