मेरे पास निम्न कक्षाएं हैं:
[serializable] [DataContract (name = "LayerInfo ", नेमस्पेस =" ईएमएस जीसीएस ")] सार्वजनिक अमूर्त वर्ग लेयरपर्सिस्ट इन्फो {सार्वजनिक लेयरपर्सिस्ट इन्फो () {} सार्वजनिक लेयरपर्सिस्ट इन्फो (इंट इंडेक्स, मैपिंगकॉन्टेक्स्टबेज प्रसंग) {अनुक्रमणिका = इंडेक्स; संदर्भ = संदर्भ; } [डेटामेम्बर (नाम = "आईडीएक्स", ऑर्डर = 0)] सार्वजनिक इंडेक्स सूचकांक {प्राप्त; सेट; } // [डेटामेम्बर (नाम = "नाम")] // सार्वजनिक स्ट्रिंग नाम {get; सेट; } [डेटामेम्बर (EmitDefaultValue = true, नाम = "सीटीएक्स", ऑर्डर = 1)] सार्वजनिक मैपिंगटेन्टेक्स्टबेज प्रसंग {get; सेट; } [डेटामेम्बर (EmitDefaultValue = false, नाम = "लीटर्स", ऑर्डर = 2)] सार्वजनिक परतेंपरर्सिस्टइन्फो बच्चे {प्राप्त करें; सेट; } सार्वजनिक सार TocItemModel GetLayerModel (); } [सीरियलिज़ेबल] [संग्रहडेटा कॉन्ट्रैक्ट (नाम = "लीर्स", नेमस्पेस = "ईएमएस। जीआईएस", मदनाम = "लीयर")] सार्वजनिक वर्ग परतोंप्रदर्शित जानकारी: सूची & लेफ्टिनेंट; लेयरपर्सिस्ट इन्फो & gt; {}
अमूर्त लेयरपरिसिस्ट इन्फो क्लास के ठोस कार्यान्वयन के कई उदाहरण LayersPersistInfo में समाप्त हो जाते हैं, जिसे मुझे सीरियललाइज़ करना होगा। मैं जो देख रहा हूं वह बहुत ही अजीब है।
यदि परतेंपरर्सिफ़ाई में बच्चों के साथ 2 या अधिक आइटम हैं, तो सूचकांक 0 पर तत्व के प्रत्येक बच्चे का संदर्भ संपत्ति शून्य है। संग्रह को पुनर्पूंजीकरण के बाद अगले क्रमबद्धता प्रयास पर, LayersPersistInfo के सूचकांक 1 पर तत्व के प्रत्येक बच्चे की संदर्भ संपत्ति शून्य है। अगले प्रयास में, आइटम 0 के बच्चों के सभी के पास नल प्रसंग है और इतने पर। यह व्यवहार बहुत सुसंगत है।
अगर मेरी कस्टम संग्रह परतों PersistInfo में सिर्फ एक आइटम है, तो सभी बच्चों को ठीक से सीरियलाइज किया गया है।
मैंने सीरियलआइजर इंस्टेंस पर WriteObject को कॉल करने से पहले एक ब्रेक पॉइंट लगा दिया है और यह सम्पत्ति कभी भी अशक्त नहीं है । मैं संभवतः यहां क्या गलत कर रहा था?
टीआईए।
मेरी गलती डेटा के deserialized के बाद प्रसंग संपत्ति का सही उपयोग नहीं किया गया था।
Comments
Post a Comment