2012-10-05 10 views
9

मैं Azure कैश पूर्वावलोकन का उपयोग कर रहा हूं और कुछ वर्गों को Serializable बनाने की आवश्यकता है।कक्षा को Serializable बनाने के नुकसान

क्या क्लास को सीरियलज़ेबल होने का कोई नुकसान है - जैसे प्रदर्शन समस्या?

[Serializable] 
public class MyClass {} 

मुझे कुछ संबंधित प्रश्न मिले, लेकिन वे नुकसान के बारे में नहीं हैं।

  1. Are all .NET exceptions serializable?

  2. Drawbacks of marking a class as Serializable

धन्यवाद अग्रिम

+1

मुझे केवल नुकसान का सामना करना पड़ा है कि यह कुछ obfuscators को आपके कोड को खराब करने से रोक सकता है। यदि कक्षा को धारावाहिक के रूप में चिह्नित किया गया है, तो नामों को छोड़ दिया जाएगा। – Rob

उत्तर

8

में नहीं, बस में [Serializable] के रूप में चिह्नित किया जा रहा कोई आंतरिक भूमि के ऊपर है। समस्या सिर्फ मैं होगा कि BinaryFormatter और NetDataContractSerializer घटिया serializers हैं, और अधिकांश अन्य serializers (ठीक है, मैं पक्षपाती हो सकता है)

5

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

तकनीकी दृष्टिकोण से, जैसा कि मार्क ग्रेवेल ने कहा था, केवल विशेषता का उपयोग करने से वास्तव में कोई ओवरहेड नहीं होगा।

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