2012-04-19 8 views
5

मेरे पास एक्सएमएल के रूप में सहेजी गई बहुत सी धारावाहिक वस्तुएं हैं, लेकिन मैं इन वस्तुओं में 2 चर जोड़ना चाहता हूं।एक धारावाहिक वस्तु को कैसे बदलें?

यहाँ मेरी वस्तु है:

public class MyObject{ 
    public Int32 MyVariables = 0; 
} 

इस वस्तु काफ़ी धारावाहिक कर दिया गया है, और मैं अपने आवेदन में इन "पुराने" फ़ाइलों को पढ़ने की क्षमता रखने चाहते हैं।

public class MyObject{ 
    public Int32 MyVariables = 0; 
    public Dictionary<string,MyEnum> MyDict = new Dictionary<string,MyEnum>(); 
} 

किसी को भी इन नए चर जोड़ने के लिए सबसे अच्छा तरीका बता सकते हैं:

लेकिन मैं इस तरह के रूप वस्तु बेहतर बनाने के लिए कुछ और चर जोड़ने के लिए, की आवश्यकता है? मैंने वास्तव में MyObject को बदल दिया और शब्दकोश जोड़ा और मुझे विश्वास है कि इसे अब ठीक से पढ़ा नहीं जा रहा है।

अग्रिम धन्यवाद!

संपादित करें:

System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); 
object obj = formatter.Deserialize(File.Open(Path, FileMode.Open)); 

संपादित करें 2: मैं भी देखने के लिए जहां यह विफल रहता है जब वस्तु में पढ़ने, मैं इस ऐसा करने के लिए कर रहा हूँ कहीं भी एक अपवाद को पकड़ने के लिए सक्षम नहीं कर रहा हूँ मैं इस पर विश्वास वास्तव में शब्दकोश के हिस्से के रूप में एनम का उपयोग करके मेरे कारण हो सकता है, मैंने enum के ऊपर [Serializable] जोड़ा और यह अभी भी काम नहीं करता है - विचार?

उत्तर

4

बस नए चर जोड़ें।

यदि XML धारावाहिक को नए चर के लिए उचित प्रतिनिधित्व नहीं मिलता है, तो यह उन्हें डिफ़ॉल्ट मानों के साथ प्रारंभ करेगा।

+0

मैंने सोचा कि यह काम करेगा (असल में अगर मैं सिर्फ एक int बनाम डिक्शनरी टाइप करता हूं, तो यह शब्दकोश डिफ़ॉल्ट रूप से क्रमबद्ध नहीं है?) – Geesu

+0

आप एक्सएमएल सीरिएलाइज़र के साथ एक शब्दकोश को क्रमबद्ध नहीं कर सकते हैं। हालांकि, कामकाज हैं। मैं एक लिंक कोशिश और खोदूँगा। –

+1

एक्सएमएल सीरियलाइज़र के साथ शब्दकोश का उपयोग करने के लिए यहां एक दृष्टिकोण है ... http://johnwsaunders3.wordpress.com/2009/03/10/one-way-to-serialize- शब्दकोश/ –

संबंधित मुद्दे