में एक सरणी मैं एक XML दस्तावेज निम्न के समान है साथ XmlSerializer का उपयोग करना:मूल तत्व
<scan_details>
<object name="C:\Users\MyUser\Documents\Target1.doc">
...
</object>
<object name="C:\Users\MyUser\Documents\Target2.doc">
...
</object>
...
</scan_details>
मैं System.Xml.Serialization
एक्सएमएल अक्रमांकन सरल करने के लिए विशेषताओं का उपयोग करने की उम्मीद कर रहा हूँ। मेरे पास यह मुद्दा है कि मैं यह निर्दिष्ट नहीं कर सकता कि रूट नोड में एक सरणी है।
मैं निम्नलिखित वर्गों बनाने की कोशिश की है:
[XmlRoot("scan_details")]
public class ScanDetails
{
[XmlArray("object")]
public ScanDetail[] Items { get; set; }
}
public class ScanDetail
{
[XmlAttribute("name")]
public string Filename { get; set; }
}
हालांकि जब मैं ScanDetails
वस्तु में एक्सएमएल deserialize Items
सरणी null
बनी हुई है।
मैं रूट नोड में एक सरणी को कैसे deserialize कर सकते हैं?
आह ... यह भ्रमित शब्दावली का उपयोग करता है। मैं 'XmlArray' और 'XmlArrayItem' पर ध्यान केंद्रित कर रहा था। उसके लिए धन्यवाद! –
यदि कोई सरणी है, लेकिन रूट स्तर के नीचे नहीं है, तो सरणी प्रॉपर्टी को अभी भी [XmlArray ("arrayElementName") की आवश्यकता होती है, और नहीं [XmlElement ("arrayElementItemName")], लेकिन यदि आपके उत्तर की तरह रूट स्तर के नीचे है इसकी आवश्यकता है [XmlElement ("arrayElementItemName")] क्या आप जानते हैं कि ऐसा क्यों है? यह रूट स्तर की तरह है जिसमें आप आंतरिक दोहराने वाले तत्व प्रकारों का वर्णन कर रहे हैं, और कहीं और सरणी प्रकार का वर्णन कर रहे हैं। – CRice
मैं आपको धन्यवाद देने के लिए एक पल लेना चाहता हूं। मैंने कई सवालों पर कई उत्तरों के माध्यम से scoured और यह एकमात्र चीज है जो काम करता है। यह इतना अनजान है कि आपको मूल तत्व पर सरणी विशेषता को परिभाषित करने की आवश्यकता नहीं है, न ही सरणी तत्व। – Gaugeforever