2009-08-06 10 views
13

के रूप में कक्षा को चिह्नित करने की कमी, कक्षा को क्रमबद्ध करने के रूप में चिह्नित करने की क्या कमी है?सीरियलज़ेबल

मुझे अपने एएसपीनेट सत्र को डीबी में सहेजने की ज़रूरत है और इसके लिए आवश्यक है कि सत्र में ऑब्जेक्ट्स क्रमबद्ध हों।

समझ में आना।

लेकिन यह पता चला है कि मुझे बस इतना करना था कि [Serializable] विशेषता के साथ उस वर्ग को सजाने के लिए और यह काम किया गया था, इसका मतलब है कि .NET के पास कक्षाओं को क्रमबद्ध करने के लिए अंतर्निहित आधारभूत संरचना है। तो यह डिफ़ॉल्ट रूप से ऐसा क्यों नहीं कर सकता है?

इसे इस तरह चिह्नित करने की क्या आवश्यकता है?

उत्तर

28

तो यह डिफ़ॉल्ट रूप से ऐसा क्यों नहीं कर सकता है?

ऑब्जेक्ट के लिए स्वचालित क्रमिकरण/deserialization पर्याप्त नहीं हो सकता है। उदाहरण के लिए, ऑब्जेक्ट में एक फ़ील्ड हो सकता है जिसमें स्थानीय फ़ाइल का नाम, स्मृति के लिए सूचक, एक साझा सरणी में एक इंडेक्स इत्यादि हो। जबकि सिस्टम आमतौर पर बिना किसी परेशानी के इन कच्चे मूल्यों को क्रमबद्ध कर सकता है, deserialization आसानी से कुछ परिणाम हो सकता है यह प्रयोग योग्य नहीं है। आम तौर पर, सिस्टम के लिए इसे स्वयं ही समझना असंभव है। Serializable के साथ कक्षा को चिह्नित करने के लिए आपको यह संकेत मिलता है कि आपने इन विचारों को ध्यान में रखा है।

-1

दोषों के मामले में, धारावाहिकता का प्राथमिक नुकसान प्रदर्शन ओवरहेड (सीपीयू और डिस्क दोनों) और तार पर इसे भेजने पर संभावित विलंबता मुद्दों है। सुरक्षा के साथ थोड़ी सी चिंताएं हो सकती हैं क्योंकि आम तौर पर, एक्सएमएल क्रमबद्धता असुरक्षित है क्योंकि यह केवल सार्वजनिक गुणों और वर्गों पर ही काम करती है, जो आपको कुछ मामलों में उजागर करने वाली संपत्तियों के लिए मजबूर करती है, जो आपके पास अन्यथा नहीं हो सकती हैं। बेशक अगर सुरक्षा वास्तव में एक चिंता है, तो शायद आप सत्र में डेटा के प्रति संवेदनशील नहीं होंगे।

यदि आप सिल्वरलाइट का उपयोग कर रहे हैं, तो एक संभावित दोष यह है कि सिल्वरलाइट [सीरियलज़ेबल] विशेषता का समर्थन नहीं करता है, इसलिए इसके साथ सजाए गए किसी भी वर्ग आपके सिल्वरलाइट असेंबली के लिए उपयोग करने योग्य नहीं होगा।

कहा जाता है कि, सत्र प्रबंधन के लिए, एएसपीस्टेट डेटाबेस में संग्रहीत छोटी वस्तुएं आमतौर पर स्मृति सत्र में किसी भी ध्यान देने योग्य अंतर के बिना ठीक प्रदर्शन करती हैं। स्पेक्ट्रम के विपरीत छोर पर, मेरे पास गुणों आदि के रूप में अन्य वस्तुओं की सूचियों के साथ बड़ी वस्तुएं थीं, और यदि वे काफी बड़ी हैं, तो प्रदर्शन हिट कई बार ध्यान देने योग्य हो सकती है।

+3

xml serialization यहां एक गैर-मुद्दा है ... इसका उपयोग इस संदर्भ में नहीं किया जाता है, और इसका ''Serializable]' –

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