2011-05-05 15 views
5

मैं एक वर्ग के उदाहरण को पृथक स्टोरेज में क्रमबद्ध करना चाहता हूं। मैंने SharpSerialiser को आजमाया है, लेकिन यह केवल सार्वजनिक गुणों को क्रमबद्ध कर सकता है। लेकिन मेरी कक्षा में निजी सदस्य हैं (कोई गुण नहीं है), स्थिर सदस्य इत्यादि। DataContractSerializer में भी मुझे लगता है कि हम कर सकते हैं धारावाहिक केवल सार्वजनिक सदस्य हैं। तो क्या इसे क्रमबद्ध करने का कोई तरीका है?निजी सदस्यों वाले वर्ग के उदाहरण को क्रमबद्ध कैसे करें?

धन्यवाद और सादर vaysage

+0

आम तौर पर हम निजी सदस्यों को क्रमबद्ध नहीं करते हैं। क्या ऐसा करने का कोई विशेष कारण है? – ScruffyDuck

उत्तर

6

सिल्वरलाइट एक कठोर प्रतिबिंब सुरक्षा मॉडल है, और इस बायपास करने के लिए प्रयोग किया जाता है हमेशा की तरह चालें का समर्थन नहीं करता। AFAIK, आप सार्वजनिक सदस्यों तक ही सीमित हैं।

आप निश्चित रूप से एक कस्टम इंटरफ़ेस और कोड-पीढ़ी के माध्यम से आंशिक वर्ग (मैन्युअल कार्यान्वयन से बचने के लिए) के माध्यम से ऑब्जेक्ट स्वयं-क्रमबद्ध कर सकते हैं।

हालांकि, आईएमओ एक बेहतर दृष्टिकोण है जो माध्यमिक डीटीओ कक्षा मॉडल बनाना है; यह उत्परिवर्तनीय है और जिसमें get और set के साथ सार्वजनिक गुण हैं। अधिकांश धारावाहिक इस से खुश होंगे, और आप हमेशा अपने डीटीओ मॉडल और अपने प्राथमिक ऑब्जेक्ट मॉडल के बीच एक रूपांतरण ऑपरेटर प्रदान कर सकते हैं।

6

मेरी वरीयता कस्टम बाइनरी क्रमबद्धता के लिए है, जो सुनिश्चित करता है कि आपको केवल वांछित क्रमशः सीरियलाइज करना है, यह सबसे तेज़ क्रमिकरण विधि है, और आपको वास्तव में निजी सदस्यों को क्रमबद्ध करने में सक्षम बनाता है। केविन मार्शल के पास एक महान सीरियलाइजेशन तुलना पोस्ट है जो विकल्पों को कवर करता है और प्रदर्शन आंकड़े भी देता है: http://blogs.claritycon.com/kevinmarshall/2010/11/03/wp7-serialization-comparison/

+0

बहुत बहुत धन्यवाद। इस लिंक ने मुझे कस्टम बाइनरी सीरियलाइजेशन सीखने में मदद की। लेकिन मैं केवल एक ही जवाब देख सकता हूं। इसलिए मैंने ऊपर उठाया। – Vaysage

संबंधित मुद्दे