Solved

Can we do XML Serialization for an object having collections?

Posted on 2008-10-18
4
222 Views
Last Modified: 2010-08-05
Can we do XML serialization for an object having a collection?
If yes then, please provide me a small example how to do.
0
Comment
Question by:GouthamAnand
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
4 Comments
 
LVL 1

Accepted Solution

by:
StasL earned 250 total points
ID: 22751265
Hi GouthamAnand,

The bottom line is you can serialize collections, as long as they are strongly typed.
Some collections may be serialized with no extra efforts, i.e. supported by the framework, while others will require some coding or googling.

As for the easy case sample is attached.
The more complex case (the generic dictionary for instance) can be handled using a custom serialization process.
You may refer to the following link for some samples:

http://blogs.msdn.com/psheill/archive/2005/04/09/406823.aspx

List<string> someStringList = new List<string>();
someStringList.Add("one");
 
XmlSerializer xs = new XmlSerializer(typeof(List<string>));
FileStream fs = new FileStream(@"c:\SerializedCollection.xml", 
FileMode.CreateNew);
xs.Serialize(fs, someStringList);
fs.Close();
 
List<string> deserializedList = new List<string>();
FileStream fs1 = new FileStream(@"c:\SerializedCollection.xml", 
					FileMode.Open);
deserializedList = (List<string>)xs.Deserialize(fs1);
fs1.Close();

Open in new window

0
 
LVL 3

Assisted Solution

by:torrie01
torrie01 earned 250 total points
ID: 22781210
I've found the easiest collection to serialize is an ArrayList, see the code below:
    [Serializable()]
    public class ClassWithList
    {
        public ClassWithList()
        {
            
        }
 
        
        // This attribute enables the ArrayList to be serialized:
        [System.Xml.Serialization.XmlArray("ListOfItems")]
        // Explicitly tell the serializer to expect the ClassWithItem class
        // so it can be properly written to XML from the collection:
        [System.Xml.Serialization.XmlArrayItem("Item", typeof(ClassWithItem))]
        public ArrayList ItemList { get; set; }
    }

Open in new window

0

Featured Post

Enroll in June's Course of the Month

June's Course of the Month is now available! Every 10 seconds, a consumer gets hit with ransomware. Refresh your knowledge of ransomware best practices by enrolling in this month's complimentary course for Premium Members, Team Accounts, and Qualified Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
In this video, viewers will be given step by step instructions on adjusting mouse, pointer and cursor visibility in Microsoft Windows 10. The video seeks to educate those who are struggling with the new Windows 10 Graphical User Interface. Change Cu…
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …

691 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question