2010-03-24 14 views
71

मेरा डेस्कटॉप एप्लिकेशन XmlSerializer का उपयोग करके वस्तुओं को क्रमबद्ध करता है। मुझे इसके बजाय DataContractSerializer का लाभ उठाने का सुझाव दिया गया था।
किस परिदृश्य के तहत मुझे DataContractSerializer का उपयोग करना चाहिए?डेटाकंट्रैक्टसेरियलाइज़र बनाम एक्सएमएलएसरियलाइज़र: प्रत्येक धारावाहिक के पेशेवरों और विपक्ष

बहुत धन्यवाद

टिप्पणियां।
1. आउटपुट एक्सएमएल फ़ाइल स्थानीय रूप से संग्रहीत है। कोई अन्य अनुप्रयोग उस XML फ़ाइल से वस्तुओं को deserialize।
2. मेरा एप्लिकेशन .NET Framework 3.5 SP1 के साथ चलता है।

+0

भी देखें का समर्थन नहीं करता [datacontract-बनाम-xmltype] (http://stackoverflow.com/questions/624111/datacontract-vs-xmltype) – nawfal

उत्तर

93

डैन रिग्सबी इस पर अंतिम पोस्ट है - इसे पढ़ें!

XmlSerializer vs. DataContractSerializer (web archive)

उन्होंने सभी का कहना है कि वहाँ कहने के लिए है, और एक बहुत ही ठोस तरीके से।

संक्षेप में:

XmlSerializer:

  • एक लंबे समय
  • "ऑप्ट-आउट" है के लिए चारों ओर गया है; सब कुछ सार्वजनिक धारावाहिक हो जाता है, जब तक आप इसे नहीं बता करने के लिए ([XmlIgnore])

DataContractSerializer है:

  • शहर
  • में नए बच्चे की गति के लिए अनुकूलित (लगभग 10% XmlSerializer की तुलना में तेजी, आम तौर पर)
  • "ऑप्ट-इन" - केवल आपके द्वारा विशेष रूप से [DataMember] के रूप में चिह्नित धारावाहिक होगा
  • लेकिन [DataMember] के साथ चिह्नित कुछ भी धारावाहिक की जाएगी - चाहे वहहैया private
  • XML गुणधर्मों (गति कारणों के लिए)
+1

रुको, क्या आप उस अंतिम बिंदु पर विस्तार कर सकते हैं? –

+2

@ पॉल-सेबेस्टियन मोनोल: डेटा कंट्रैक्टसराइलाइज़र एक्सएमएल विशेषताओं का समर्थन नहीं करता - गति कारणों से। विस्तृत करने के लिए क्या है? –

+0

ठीक है, मैं .NET के लिए नया हूँ। मैं XmlSerializer का उपयोग करने जा रहा था क्योंकि मुझे ऑनलाइन कुछ ट्यूटोरियल मिले। लेकिन फिर मुझे एमएसडीएन पर डेटाकंट्रैक्टसेरियलाइज़र मिला जो डब्ल्यूसीएफ से जुड़ा हुआ प्रतीत होता है। मैं क्या करना चाहता हूं, कुछ एक्सएमएल को एक सादे ऑब्जेक्ट में deserialize है जो मुझे एक एक्सएमएल तत्व और इसके गुणों तक पहुंचने की अनुमति देगा क्योंकि मैं गुणों के लिए कुछ मूल्यों की गणना करने के बाद, बाद में उन वस्तुओं को क्रमबद्ध करना चाहता हूं, एक XML दस्तावेज़ में वापस लेना चाहता हूं। –

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