मैं XML पर किसी ऑब्जेक्ट को क्रमबद्ध करने की कोशिश कर रहा हूं जिसमें कई गुण हैं, जिनमें से कुछ केवल पढ़ने योग्य हैं।निजी सदस्य डेटा को क्रमबद्ध करना
public Guid Id { get; private set; }
मैं कक्षा [Serializable] में चिह्नित किया है और मैं ISerializable इंटरफ़ेस को लागू किया है।
नीचे वह कोड है जिसका उपयोग मैं अपने ऑब्जेक्ट को क्रमबद्ध करने के लिए कर रहा हूं।
public void SaveMyObject(MyObject obj)
{
XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
TextWriter tw = new StreamWriter(_location);
serializer.Serialize(tw, obj);
tw.Close();
}
दुर्भाग्य से यह इस संदेश के साथ पहली पंक्ति पर पड़ता है।
अवैधऑपरेशन अपवाद को अनचाहे किया गया था: अस्थायी कक्षा (परिणाम = 1) उत्पन्न करने में असमर्थ। त्रुटि CS0200: संपत्ति या इंडेक्सर 'MyObject.Id' को सौंपा नहीं जा सकता है - यह केवल
पढ़ रहा है, तो मैं जनता के लिए आईडी गुण सेट यह ठीक काम करता है। क्या कोई मुझे बता सकता है कि मैं कुछ कर रहा हूं, या कम से कम यदि यह भी संभव है?
+1, मेरे उत्तर पर सलाह के लिए धन्यवाद। –
मैंने अपने कोड को DataContractSerializer का उपयोग करने के लिए बदल दिया है और मैंने देखा है कि यह अभी भी GetObjectData विधि चला रहा है। क्या मैं यह सोचने में सही हूं कि मैं या तो मेरे गुणों पर गुणों को क्रमबद्ध करने के लिए गुण डाल सकता हूं, या मैं आईएसरियलज़ेबल इंटरफ़ेस को कार्यान्वित कर सकता हूं? –
यदि आप ISerializable लागू करते हैं (या यह IXmlSeializable है?), तो आप मूल रूप से सभी काम कर रहे हैं ... –