मैं इस वर्ग को फ़ाइल में सहेजने के लिए XMLSerializer का उपयोग कर रहा हूं। कक्षा में एक स्ट्रिंग और एनम है जैसा कि नीचे दिखाया गया है:XmlSerializer: एक enum मान को Deserialize कैसे करें
public class IOPoint
{
string Name {get; set;}
TypeEnum {get; set;}
}
public enum TypeEnum
{
Temperature,
Pressure,
Humidity,
}
जब धारावाहिक ऐसा लगता है।
<IOPoint>
<Name>Relative Humidity</Name>
<TypeEnum>Humidity</TypeEnum>
</IOPoint>
मैं serializing किया गया है और कई संस्करण के लिए कोई समस्या नहीं के साथ इस वस्तु deserializing। अब मैं आर्द्रता का समर्थन नहीं करना चाहता, इसलिए मैंने इसे enum से हटा दिया। हालांकि, एक्सएमएल से deserializing जब यह एक अपवाद का कारण बनता है क्योंकि TypeEnum फ़ील्ड, आर्द्रता में मान टाइपएनम के लिए मान्य मान नहीं है। यह समझ में आता है, लेकिन इसे कैसे संभालें?
मैं जो करना चाहता हूं वह सिर्फ इस त्रुटि को अनदेखा कर रहा है। और मूल्य को शून्य के रूप में छोड़ दें। मैंने ऑन अज्ञात एलिमेंट XmlDeserilizationEvent क्लास को कार्यान्वित करने का प्रयास किया है। दुर्भाग्यवश, यह इस त्रुटि को नहीं पकड़ता है।
इस त्रुटि को पकड़ने और अनदेखा करने के बारे में कोई भी विचार (मैं deserialization पूरा होने के बाद साफ कर सकते हैं)।
मिच
यदि आपको कोई समाधान मिला तो मुझे पता होना अच्छा लगेगा। मुझे एक संबंधित समस्या है जहां सर्वर-साइड में एक नया एनम फ्लैग वैल्यू शामिल है जिसमें क्लाइंट को पता नहीं है, इसलिए वास्तव में केवल एक फ़ील्ड के क्रमबद्धता को प्रबंधित करने का तरीका ढूंढना है। अगली बार मैं सिर्फ एक int का उपयोग करूंगा, लेकिन अभी के लिए ... पिछड़ा संगतता। – avenmore