C# XML deserialization problem -
मेरे पास निम्न XML स्निपेट है:
& lt;? Xml संस्करण = "1.0" एन्कोडिंग = "utf-8" & gt; & LT; dmFiles & gt; & Lt; dmFile dmUpFileGuid = "dmFileDescr =" testcase01.pdf "dmFileMetaType =" मुख्य "dmFileGuid =" "dmMimeType =" पीडीएफ "dmFormat =" "& gt; & LT; dmEncodedContent & gt; & lt; / dmEncodedContent & gt; & Lt; / dmFile & gt; & Lt; / dmFiles & gt;
जब मैं इसे deserialize करने की कोशिश करता हूं, कुछ भी नहीं आती है, मेरी सी # कक्षा इस तरह परिभाषित है, कृपया मुझे मेरी तर्क दोष दिखाना:
[serializable ] सार्वजनिक वर्ग डीएमफाइलें {सार्वजनिक डीएमफ़ाइल [] डीएमएफ़ाइल {get; सेट; }} सार्वजनिक वर्ग dmFile {[XmlAttribute ("dmUpFileGuid")] सार्वजनिक स्ट्रिंग dmUpFileGuid {get; सेट; } [XmlAttribute ("dmFileDescr")] सार्वजनिक स्ट्रिंग dmFileDescr {get; सेट; } [XmlAttribute ("dmFileMetaType")] सार्वजनिक स्ट्रिंग dmFileMetaType {get; सेट; } [XmlAttribute ("dmFileGuid")] सार्वजनिक स्ट्रिंग dmFileGuid {get; सेट; } [XmlAttribute ("dmMimeType")] सार्वजनिक स्ट्रिंग dmMimeType {get; सेट; } [XmlAttribute ("डीएमएफ़ॉर्मेट")] सार्वजनिक स्ट्रिंग डीएमएफ़ॉर्मैट {प्राप्त; सेट; } [XmlElement] सार्वजनिक स्ट्रिंग dmEncodedContent {get; सेट; }}
मुझे उम्मीद है कि सरणी तत्वों के दो स्तरों की अपेक्षा कर रहा है; कोशिश करें:
[XmlElement ("dmFile")] सार्वजनिक डीएमफ़ाइल [] dmFile {get; सेट; }
(जो सरणी सामग्री के लिए "dmFile"
नामक तत्वों का एक स्तर का उपयोग करने के लिए कहता है)
बीटीडब्ल्यू, आप कर सकते हैं नामकरण को नियंत्रित करने के लिए विशेषताओं को जोड़कर अपनी कक्षाएं अधिक स्वाभाविक रूप से नाम दें; उदाहरण के लिए: [XmlRoot ("dmFiles")] / / सामान्य रूप से [सीरियलज़ेबल] सार्वजनिक वर्ग FilesWrapper // जो भी आप चाहते हैं {...} (XmlReader>
Comments
Post a Comment