कैसे .net में संग्रह को क्रमानुसार करने

वोट
4

मैं अपने app.config फ़ाइल से भंडारण / पुनः प्राप्ति के लिए वस्तुओं का संग्रह क्रमानुसार करने चाहते हैं। (मैं जेफ Attwood के ब्लॉग प्रविष्टि से एक उदाहरण से कोड का उपयोग कर रहा अंतिम विन्यास धारा हैंडलर .. दोबारा गौर )।

क्या मैं जानना चाहता हूँ, यही वजह है कि प्रकार की वस्तुओं का संग्रह

public class MyClass
{
  ...
}

कहा जाता है एक xml तत्व को धारावाहिक मिल

<ArrayOfMyClass>...</ArrayOfMyClass> 

इस उदाहरण में मैं MyClass वस्तुओं की एक सामान्य सूची का उपयोग कर रहा हूँ। मैं भी एक नया वर्ग जो सूची से विरासत और परिणामी एक्सएमएल बिल्कुल वैसा ही है बनाने की कोशिश की है।

वहाँ एक्सएमएल तत्व जब serializing / deserializing इस्तेमाल किया नाम ओवरराइड करने के लिए कोई तरीका है?

12/03/2009 को 17:02
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
4

जब आप सूची से विरासत आप की तर्ज पर कुछ कोशिश कर सकते हैं

[Serializable]
[System.Xml.Serialization.XmlRoot("SuperDuperCollection")]
public class SuperDuperCollection : List<MyClass> { ... }

अपनी कक्षा को सजाने के लिए, विभिन्न XmlAttributes का उपयोग कर आप जिस तरह से XML आउटपुट जब धारावाहिक है पर नियंत्रण है देना चाहिए।

बस कुछ टेस्ट संहिता और उत्पादन के साथ एक अतिरिक्त संपादित करें:

[Serializable]
public class MyClass
{
public int SomeIdentifier { get; set; }
public string SomeData { get; set; }
}

....

SuperDuperCollection coll = new SuperDuperCollection
{
    new MyClass{ SomeData = "Hello", SomeIdentifier = 1},
    new MyClass{ SomeData = "World", SomeIdentifier = 2}
};

Console.WriteLine(XmlSerializeToString(coll));

आउटपुट:

<SuperDuperCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <MyClass>
    <SomeIdentifier>1</SomeIdentifier>
    <SomeData>Hello</SomeData>
  </MyClass>
  <MyClass>
    <SomeIdentifier>2</SomeIdentifier>
    <SomeData>World</SomeData>
  </MyClass>
</SuperDuperCollection>
12/03/2009 को 17:10
का स्रोत उपयोगकर्ता

वोट
3

पर एक नजर डालें XmlArrayAttribute विशेषता

12/03/2009 को 17:07
का स्रोत उपयोगकर्ता

वोट
3

ऐसा न होने पर वे एक प्रकार के बच्चे तत्व हैं - आप उपयोग कर सकते हैं [XmlRoot], [XmlType], [XmlElement]और [XmlArray]और [XmlArrayItem]विभिन्न संयोजनों में विभिन्न परिणाम प्राप्त करने के लिए - दुर्भाग्य से, विशेष सटीक लेआउट पर निर्भर हैं ...

12/03/2009 को 17:07
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more