मेरा वर्ग संरचना निम्नानुसार है।
[serializable] [XmlRootAttribute ("person" , नामस्थान = "", IsNullable = false)] सार्वजनिक वर्ग व्यक्ति: IDisposable {निजी Int _id; निजी स्ट्रिंग _name; [XmlElement ("id")] सार्वजनिक इंट आईडी {{_id = value}} सेट करें {_id = value;}} [XmlElement ("name")] सार्वजनिक स्ट्रिंग नाम {get {return _name;} सेट करें {_name = value; }}} जब मैं उपरोक्त वर्ग को सीरियल कर देता हूं, तो मुझे निम्नलिखित एक्सएमएल मिल रहा है
& lt; person & gt; & LT; आईडी & gt; 1 & lt; / आईडी & gt; & LT; नाम & gt; टेस्ट & lt; / नाम & gt; & Lt; / व्यक्ति & gt; अब, मैं उपरोक्त वर्ग को सीरियल करना चाहूंगा, जैसा कि मैं निम्न प्रकार से प्रत्येक सार्वजनिक संपत्ति के लिए "प्रकार" विशेषता को एक्सएमएल तत्व के रूप में क्रमबद्ध करता हूं। मैं "[XmlAttribute (" प्रकार ")]" के साथ एक अन्य सार्वजनिक संपत्ति "प्रकार" को घोषित करके "व्यक्ति" नोड को "प्रकार" विशेषता जोड़ सकता हूं, लेकिन मैं प्रत्येक सार्वजनिक संपत्ति के लिए उसी को प्राप्त करना चाहूंगा जो कि xml तत्व के रूप में क्रमबद्ध है नीचे प्राप्त करने के लिए कोई भी विचार:
& lt; व्यक्ति प्रकार = "व्यक्ति" & gt; & Lt; आईडी प्रकार = "इंट" & gt; 1 & lt; / id & gt; & Lt; नाम प्रकार = "स्ट्रिंग" & gt; टेस्ट & lt; / name & gt; & Lt; / व्यक्ति & gt;
सबसे पहले चीजें मेरे मन में आती हैं एक सामान्य वर्ग बनाने के लिए, उदाहरण के लिए नाम < टाइप किया गया & lt; T & gt; , जो इस तरह दिखता है:
[सीरियलज़ेबल] सार्वजनिक वर्ग टाइप किया गया & lt; T & gt; {सार्वजनिक टाइप () {} सार्वजनिक टाइप किया गया (T मान) {this.Value = value; } [XmlText] सार्वजनिक टी मूल्य {प्राप्त; सेट; } [XmlAttribute ("प्रकार")] सार्वजनिक स्ट्रिंग प्रकार {get {return typeof (T) प्राप्त करें .नाम; } सेट {// स्पष्टता के लिए छोड़ा}}} फिर आपका सार्वजनिक इंट आईडी , सार्वजनिक हो जाता है टाइप करें & lt; पूर्णांक & gt; ईद । एक्सएमएल पार्सर के लिए यह शामिल करने का एक और तरीका हो सकता है, लेकिन अभी यह मेरे सिर के ऊपर है।
Comments
Post a Comment