c# - Cannot parse simple XML into an object? -
एक्सएमएल
& lt; meterWalkOrder & gt; & Lt; नाम & gt; लाल मार्ग & lt; / नाम & gt; & LT; मीटर & gt; & LT; मीटर & gt; & LT; MeterID & gt; 1 & lt; / MeterID & gt; & LT; serialnumber & gt; 12345 & lt; / serialnumber & gt; & Lt; / मीटर & gt; & LT; मीटर & gt; & LT; MeterID & gt; 2 & lt; / MeterID & gt; & LT; serialnumber & gt; एसई & lt; / serialnumber & gt; & Lt; / मीटर & gt; & Lt; / मीटर & gt; & Lt; / MeterWalkOrder & gt; मैं किसी भी सीरियलइज़र का उपयोग करके किसी वस्तु में सरल XML नहीं प्राप्त कर सकता
var xml = File.ReadAllText ("WalkOrder.xml"); Var xmlSerializer = नया NFormats.Xml.XmlSerializer (); Var obj = xml सेरियलाइजर। डायरेरिअलाइज़ & lt; मीटरवाकऑर्डर & gt; (नई स्ट्रिंगरेडर (एक्सएमएल)); मैं अभी 2 मीटर की ऑब्जेक्ट्स वापस लेता हूं जिनके पास कोई भी विशेषता सेट नहीं है और नाम चलने के क्रम में भी सेट नहीं है।
सार्वजनिक आंशिक वर्ग मीटरवाचक ऑर्डर {सार्वजनिक मीटरवर्ल्ड ऑर्डर () {मीटर = नई सूची & lt; मीटर & gt; (); } [डेटामेम्बर] सार्वजनिक स्ट्रिंग का नाम {get; सेट; }}} सिस्टम का उपयोग कर; System.Xml.Serialization का उपयोग कर; नामस्थान WindowsFormsApplication1.Classes {सार्वजनिक वर्ग मीटर: आईएममीटर {[XmlAttribute] सार्वजनिक int मीटररोड {प्राप्त; सेट; } [XmlAttribute] सार्वजनिक स्ट्रिंग सीरियल नंबर {get; सेट; }}} मैं किसी भी XML serializer की कोशिश करने को तैयार हूं।
< P> सबसे पहले मैं आपको पढ़ने के लिए सुझाव देता हूं आपने कुछ त्रुटियां बनाई हैं जो आपके कोड को चलाने के दौरान फेंक दिए गए अपवादों का उल्लेख नहीं करते हैं। - अपने एक्सएमएल मीटर और सीरियल नंबर में वे विशेषताएँ नहीं हैं तत्वों। (जैसा कि वाइट ईअरप ने टिप्पणी की है)
- अगर आप कुछ सीरियललाइज़ करना चाहते हैं तो आपको यह कहना होगा कि यह होना चाहिए [सीरियलिज़ेबल]
- सीरियलाइजेशन के लिए एक कार्यान्वित सार्वजनिक रिक्त निर्माता की आवश्यकता है
- जब आप उन्हें बंद नहीं कर रहे हैं ("" का प्रयोग "का प्रयोग")
- यह सुनिश्चित करने के लिए कि आपका सीरियललाइज़ेशन सबसे पहले सीरियलाइज करने का सबसे अच्छा काम करता है, तब आउटपुट की जांच करें और फिर deserialize को लागू करें P> नीचे पूरी तरह से काम कर रहे उदाहरण ढूंढें:
सिस्टम का उपयोग कर; System.Collections.Generic का उपयोग कर; System.IO का उपयोग कर; System.Xml का उपयोग करना; System.Xml.Serialization का उपयोग कर; नाम स्थान X123 {स्थिर वर्ग कार्यक्रम {/// & lt; सारांश & gt; /// आवेदन के लिए मुख्य प्रवेश बिंदु /// & lt; / सारांश & gt; [STAThread] स्थिर शून्य मुख्य () {मीटरवाचक ऑर्डर = नया मीटरवाक ऑर्डर (); मो। नाम = "नाम"; Mo.Meters.Add (नया मीटर (मीटर = 1, सीरियल नंबर = "kdkdkd"}); Mo.Meters.Add (नया मीटर (मीटर = 2, सीरियल नंबर = "हॉलड्रिया"}); Var xmlSerializer = नया XmlSerializer (टाइपफ (मीटरवाकऑर्डर), नया प्रकार [] {टाइपफ (मीटर)}); {XmlSerializer.Serialize (File.CreateText ("hello.xml"), मो); (स्ट्रीम s = File.OpenRead ("hello.xml") का उपयोग कर) {var obj = xmlSerializer.Deserialize (s); }}}} [सीरियलिज़ेबल] पब्लिक क्लास मीटरवाक ऑर्डर {सार्वजनिक मीटर वॉकर ऑर्डर () {} पब्लिक स्ट्रिंग नाम {get; सेट; } सार्वजनिक सूची & lt; मीटर & gt; मीटर {रिटर्न मीटर मिलता है; } सेट {meters = value; }} निजी सूची & amp; lt; मीटर & gt; मीटर = नई सूची & lt; मीटर & gt; (); } [सीरियलज़ेबल] पब्लिक क्लास मीटर {सार्वजनिक मीटर () {} [XmlAttribute] पब्लिक इंट एमटीआईडीआईडी {प्राप्त; सेट; } [XmlAttribute] सार्वजनिक स्ट्रिंग सीरियल नंबर {get; सेट; }}
Comments
Post a Comment