मैं एक विंडोज़ सेवा अनुप्रयोग लिख रहा हूं जिसे इसके निष्पादन के दौरान बार-बार XML दस्तावेज़ों को क्रमबद्ध और deserialize करने की आवश्यकता है। जैसा कि मुझे सामान्य प्रकारों को क्रमबद्ध और deserialize करने की आवश्यकता है जो संकलन समय के दौरान ज्ञात नहीं हैं (मुझे पूर्व में नहीं पता कि मुझे धारावाहिक/deserialize करने के लिए कितने प्रकार की जरूरत है) मैं जानना चाहता हूं कि कैश रखने के लिए यह एक अच्छा विचार है या नहीं DataContractSerializer ऑब्जेक्ट्स की मैं serializing और वस्तुओं deserializing के लिए तत्काल।क्या DataContractSerializer उदाहरणों को कैश करना अच्छा विचार है?
मैं इस सवाल से पूछ रहा हूं क्योंकि मुझे पता है कि XmlSerializer क्लास उदाहरणों को कैश करना एक अच्छा विचार है क्योंकि वे हुड के नीचे स्मृति में गतिशील असेंबली बनाते हैं और स्मृति में गतिशील रूप से बनाई गई असेंबली कचरा नहीं होती है।
मैंने पढ़ा है कि डेटाकंट्रैक्टसेरियलाइज़र लाइटवेट कोड पीढ़ी पर निर्भर करता है, लेकिन मैं इसके विवरण के साथ सामान्य नहीं हूं। यही कारण है कि मैं इस सवाल से पूछ रहा हूं, मुझे समझने की ज़रूरत है कि क्या मैं डेटाकंट्रैक्टसेरियलाइज़र इंस्टेंस को तत्काल आवश्यक करता हूं, क्योंकि मुझे एक्सएमएलसेरियलाइज़र के रूप में मेमोरी लीक में ले जाया जाएगा?
मैंने आंतरिक गुणों को क्रमबद्ध करने में सक्षम होने के लिए XmlSerializer के बजाय DataContractSerializer का उपयोग करना चुना है।
(टिप्पणी का उत्तर दिया गया) –