मैं एक DataContractJsonSerializer उपयोग कर रहा हूँ और DataMember नाम के साथ समस्या है।क्रमबद्धता DataMember (नाम) ओवरराइड मुद्दा
मैं एक आधार वर्ग और कई व्युत्पन्न वर्ग बनाया है। मुझे व्युत्पन्न कक्षाओं की आवश्यकता है क्योंकि मेरे पास अलग-अलग जेसन स्ट्रिंग हैं। मैं जेसन स्ट्रिंग को deserialize करना चाहता हूँ और इसलिए डेटामेम्बर के लिए अलग-अलग नामों की आवश्यकता है। मैं निम्न उदाहरण में DataMember नाम बदलने की कोशिश:
Baseclass:
[DataContract]
public abstract class BaseClass
{
[DataMember]
public virtual string FirstMethod { get; protected set; }
}
व्युत्पन्न वर्ग:
[DataContract]
[KnownType(typeof(BaseAccess))]
public class DerivedClass
{
[DataMember(Name="first_method")]
public virtual string FirstMethod { get; protected set; }
}
समस्या यह है कि जब मैं एक व्युत्पन्न वर्ग का उपयोग क्रमबद्धता उपेक्षा करने लगता है दिया गया डेटामेम्बर नाम। तो जब मैं DerivedClass प्रकार के साथ deserialize serialization "first_method" (व्युत्पन्न वर्ग के) के बजाय "फर्स्ट मोड" (बेस क्लास के नाम) के साथ होता है। क्या व्युत्पन्न वर्ग के डेटामेम्बर नाम का उपयोग करना संभव है (जो मेरी स्थिति में कई व्युत्पन्न कक्षाओं के लिए अलग है)।
एक और सवाल। मुझे बेस क्लास पर ज्ञात टाउन के साथ उदाहरण मिले और व्युत्पन्न कक्षा में जोड़ा गया। व्युत्पन्न वर्ग (विशेष रूप से विरासत चिंताओं के लिए) पर ऐसा करने के लिए मुझे तर्क लगता है। सही क्या है
ध्यान रखें कि आपके json में दो क्षेत्रों बनाने से बचने के लिए, आप आधार वर्ग में संपत्ति से [DataMember] विशेषता को दूर करने की आवश्यकता होगी। –