আমার একটি ক্লাস রয়েছে যার একটি ডিফল্ট কনস্ট্রাক্টর এবং একটি ওভারলোডেড কনস্ট্রাক্টর রয়েছে যা পরামিতিগুলির একটি সেট নেয়। এই পরামিতিগুলি বস্তুর ক্ষেত্রগুলির সাথে মেলে এবং নির্মাণের জন্য নির্ধারিত হয়। এই মুহুর্তে আমার অন্যান্য উদ্দেশ্যে ডিফল্ট কনস্ট্রাক্টর দরকার তাই আমি যদি পারি তবে তা রাখতে চাই।
আমার সমস্যা: আমি যদি ডিফল্ট কনস্ট্রাক্টর অপসারণ করি এবং JSON স্ট্রিংয়ে পাস করি তবে অবজেক্টটি সঠিকভাবে ডিসরিয়ালাইজ করে এবং কোনও সমস্যা ছাড়াই কনস্ট্রাক্টর প্যারামিটারে পাস করে। আমি প্রত্যাশা করে যেভাবে প্রত্যাশিত জিনিসটি ফিরে পেয়েছি। যাইহোক, আমি যখন অবজেক্টটিতে ডিফল্ট কনস্ট্রাক্টর যুক্ত করব তখনই আমি যখন JsonConvert.DeserializeObject<Result>(jsontext)
বৈশিষ্ট্যগুলি কল করি তখন আর জনবসতি হয় না।
এই মুহুর্তে আমি new JsonSerializerSettings(){CheckAdditionalContent = true}
deserialization কল যোগ করার চেষ্টা করেছি । যে কিছুই করেনি।
আরেকটি নোট। কন্ট্রাক্টর প্যারামিটারগুলি ক্ষেত্রগুলির নামের সাথে ঠিক মেলে তবে পরামিতিগুলি ছোট হাতের অক্ষর দিয়ে শুরু হয় are আমি মনে করি না যেহেতু এটি গুরুত্বপূর্ণ হবে, যেমন আমি উল্লেখ করেছি, ডিসরিয়ালাইজেশন কোনও ডিফল্ট নির্মাণকারীর সাথে ঠিক কাজ করে না।
আমার নির্মাতাদের একটি নমুনা এখানে:
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;
}