2011-10-25 14 views
7

हमारे पास ऑब्जेक्ट्स के साथ एक एप्लिकेशन है जिसे हम डेटाबेस में क्रमबद्ध रखना चाहते हैं।
वर्तमान में हम NetDataContractSerializer का उपयोग कर रहे हैं, लेकिन हाल ही में पता चला है कि .Net प्रकार की जानकारी शामिल होने के कारण, यह बड़ी फ़ाइलों को बनाता है जिसका मतलब बुनियादी वस्तुओं के लिए भी धीमा अनुप्रयोग है।
हम इसके बजाय DataContractSerializer पर स्विच करने पर विचार कर रहे हैं, और मैं दोनों की अच्छी तुलना ढूंढ रहा हूं लेकिन एक नहीं मिला।NetDataContractSerializer बनाम DataContractSerializer

  • दोनों द्वारा बनाई गई वस्तुओं के बीच आकार में क्या अंतर है?
  • क्या कोई बड़ा प्रदर्शन अंतर है?
  • क्या उनमें से कोई समस्याग्रस्त है जब मेरे पास कोई ऑब्जेक्ट है जिसमें List<X> है, जहां X कई अन्य ऑब्जेक्ट्स द्वारा विरासत में मिला है, ताकि सूची में रनटाइम पर कई अलग-अलग प्रकार हों? (मुझे बताया गया था कि DataContractSerializerKnownTypes विशेषताओं दिया जा सकता है, लेकिन इस कोड में अधिक निर्भरता का मतलब है। वहाँ DataContractSerializer कि सभी प्रकार पता है कि मेरा समाधान में बनाने के लिए एक तरीका है?)

धन्यवाद। जबकि DataContractSerializer (DCS) केवल उन जो जरूरत लिखते

उत्तर

9
  1. NetDataContractSerializer (NetDCS) सभी वस्तुओं के लिए प्रकार की जानकारी लिखता है, करने के लिए (यानी, आप ग्रुप बी के रूप में एक सदस्य है, और सदस्य जब के वास्तविक मूल्य यह घोषणा करते हैं धारावाहिक होने के प्रकार डी का है, जहां डी बी से व्युत्पन्न प्रकार है, इसलिए डीसीएस-क्रमबद्ध प्रकार में बहुत कम "शोर" है।
  2. वास्तव में नहीं, लेकिन आपको यह देखने के लिए अपने परिदृश्य के साथ दोनों प्रयास करना चाहिए कि यह आपको प्रभावित करेगा
  3. आपको डीसीएस में ज्ञात प्रकारों का उपयोग करने की आवश्यकता है, लेकिन यदि आप ज्ञात प्रकारों के साथ काम नहीं करना चाहते हैं तो आप DataContractResolver का उपयोग कर सकते हैं। ऐसे संकल्प का एक उदाहरण Youssef Massaoui's blog में पाया जा सकता है, और संकल्पकर्ता पर कुछ और जानकारी http://blogs.msdn.com/b/carlosfigueira/archive/2011/09/21/wcf-extensibility-data-contract-resolver.aspx पर डब्ल्यूसीएफ विस्तारशीलता पर मेरी पोस्ट पर पाई जा सकती है।
संबंधित मुद्दे