c# - DataContractSerializer का उपयोग करके क्रमबद्ध करते समय मैं किसी संपत्ति को अनदेखा कैसे कर सकता हूं?




.net wcf (4)

आप जो कह रहे हैं वह इस स्थान पर एमएसडीएन पुस्तकालय में जो भी कहता है उससे संघर्ष में है:

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.aspx

मुझे आपके द्वारा उल्लेख की गई एसपी 1 सुविधा का कोई उल्लेख नहीं दिख रहा है।

मैं कक्षा को क्रमबद्ध करने के लिए .NET 3.5SP1 और DataContractSerializer का उपयोग कर रहा हूं। एसपी 1 में, उन्होंने व्यवहार को बदल दिया ताकि आपको कक्षा में डेटाकंट्रैक्ट / डेटामेम्बर विशेषताओं को शामिल करने की आवश्यकता न हो और यह केवल पूरी चीज़ को क्रमबद्ध करे। यह वह व्यवहार है जिसका मैं उपयोग कर रहा हूं, लेकिन अब मुझे धारावाहिक से एक संपत्ति को अनदेखा करने की आवश्यकता है। मुझे पता है कि ऐसा करने का एक तरीका कक्षा में डेटाकंट्रैक्ट विशेषता जोड़ना है, और केवल उन सभी सदस्यों पर डेटामेम्बर विशेषता डालना है जिन्हें मैं शामिल करना चाहता हूं। मेरे पास कारण हैं, हालांकि, यह मेरे लिए काम नहीं करेगा।

तो मेरा सवाल यह है कि क्या कोई विशेषता या कुछ ऐसा है जिसका उपयोग मैं डेटाकंट्रैक्टसेरियलाइज़र को किसी संपत्ति को अनदेखा करने के लिए कर सकता हूं?


इसके अतिरिक्त, DataContractSerializer [Serializable] के रूप में चिह्नित वस्तुओं को क्रमबद्ध करेगा और अज्ञात प्रकारों को क्रमबद्ध करने के लिए समर्थन की अनुमति देने के लिए, .NET 3.5 SP1 और बाद में अनमार्क किए गए प्रकारों को क्रमबद्ध करेगा।

इसलिए, यह इस बात पर निर्भर करता है कि आपने अपनी कक्षा को कैसे सजाया है ताकि सदस्य को क्रमबद्ध करने से कैसे रखा जा सके:

  • यदि आपने [DataContract] उपयोग किया है, तो संपत्ति के लिए [DataMember] को हटा दें।
  • यदि आपने [Serializable] उपयोग किया है, तो संपत्ति के लिए फ़ील्ड के सामने [NonSerialized] जोड़ें।
  • यदि आपने अपनी कक्षा को सजाया नहीं है, तो आपको संपत्ति में [IgnoreDataMember] जोड़ना चाहिए।






serialization