मैं तो जैसे बुनियादी वस्तुओं की एक जोड़ी कहते हैं:मैं पहले से जानने के बिना XML को deserialize कैसे करूं?
[Serializable]
public class Base
{
public string Property1 { get; set; }
public int Property2 { get; set; }
}
[Serializable]
public class Sub: Base
{
public List<string> Property3 { get; set; }
public Sub():base()
{
Property3 = new List<string>();
}
}
और मैं उन्हें इतनी तरह क्रमानुसार:
Sub s = new Sub {Property1 = "subtest", Property2 = 1000};
s.Property3.Add("item 1");
s.Property3.Add("item 2");
XmlSerializer sFormater = new XmlSerializer(typeof(Sub));
using (FileStream fStream = new FileStream("SubData.xml",
FileMode.Create, FileAccess.Write, FileShare.None))
{
sFormater.Serialize(fStream, s);
}
मैं उन्हें कैसे deserialize सकते हैं, ताकि मैं वापस सही वर्ग मिल सकता है?
के रूप में, मैं इस
XmlSerializer bFormater = new XmlSerializer(typeof (Base));
Base newBase;
using (FileStream fStream = new FileStream("BaseData.xml",
FileMode.Open, FileAccess.Read, FileShare.Read))
{
newBase = (Base) bFormater.Deserialize(fStream);
}
की तरह कुछ चाहते हैं सिवाय मैं इसे किसी भी वर्ग है कि बेस से उतरता है और सही श्रेणी का निर्माण किया जाएगा के लिए एक XML फ़ाइल पारित करने में सक्षम हो जाएगा चाहते हैं।
मुझे लगता है कि मैं एक्सएमएल के रूट नोड का नाम पढ़ सकता हूं और सही XmlSerializer बनाने के लिए स्विच स्टेटमेंट का उपयोग कर सकता हूं, लेकिन मैं सोच रहा था कि क्या कोई आसान तरीका है।
ठीक है। बस चेक किया गया। यह एक अपवाद फेंक रहा है। आखिरी पैरा हटा दिया है। – Kirtan
ठीक है, मेरी टिप्पणी हटा दी गई है क्योंकि यह अब और लागू नहीं होती है। – Ray