मेरे पास कई कक्षाएं हैं जो प्रारंभिक मान सेट होने के बाद अपरिवर्तनीय हैं। एरिक लिपर्ट ने यह write-once immutability पर कॉल किया।अपरिवर्तनीयता और एक्सएमएल सीरियलाइजेशन
लिखने के कार्यान्वयन - एक बार सी # में अपरिवर्तनीयता आमतौर पर निर्माता के माध्यम से प्रारंभिक मान निर्धारित करने का मतलब है। ये मान केवल पढ़ने वाले फ़ील्ड को प्रारंभ करते हैं।
लेकिन यदि आपको XmlSerializer या DataContractSerializer का उपयोग करके एक्सएमएल को इस तरह की कक्षा को क्रमबद्ध करने की आवश्यकता है, तो आपके पास पैरामीटर रहित कन्स्ट्रक्टर होना चाहिए।
क्या किसी को इस समस्या के आसपास काम करने के लिए सुझाव हैं? क्या अपरिवर्तनीयता के अन्य रूप हैं जो क्रमबद्धरण के साथ बेहतर काम करते हैं?
संपादित करें: जैसा कि @Todd ने इंगित किया है, DataContractSerializer को पैरामीटर रहित कन्स्ट्रक्टर की आवश्यकता नहीं है। DataContractSerializer documentation on MSDN के अनुसार, DataContractSerializer "लक्ष्य ऑब्जेक्ट के निर्माता को कॉल नहीं करता है।"
मुझे लगता है कि आप चीजों को भ्रमित कर रहे हैं ... आप जो वर्णन करते हैं वह पॉपसिकल अपरिवर्तनीयता है। यह लिखने की तरह दिखता है-एक बार अपरिवर्तनीयता। –
संपादित करें: ... ** ** ** popsicle नहीं है ... –
आप बिल्कुल सही हैं, @Martinho। मैंने अपने प्रश्न को "लिखने के लिए एक बार अपरिवर्तनीयता" पढ़ने के लिए सही किया है। – dthrasher