Possible Duplicate:
How to serialize an IList<T>?
I wish to serialize an class (let's call it S
) that contains a property of the type IList<T>
where T
is another class which I have defined. I get an exception when I attempted to serialize an instance of class S
to XML. This is understandable as the XmlSerializer
doesn't know which concrete class to use. Is there a way, hopefully using attributes, to specify which concrete class to instantiate when serializing/deserializing an instance. My implementation of class S
creates a instance of the List<T>
class. Here is some code to illustrate my example:
using System;
using System.Xml.Serialization;
using System.IO;
[Serializable]
public class T { }
[Serializable]
public class S
{
public IList<T> ListOfTs { get; set; }
public S()
{
ListOfTs = new List<T>();
}
}
public class Program
{
public void Main()
{
S s = new S();
s.ListOfTs.Add(new T());
s.ListOfTs.Add(new T());
XmlSerializer serializer = new XmlSerializer(typeof(S));
serializer.Serialize(new StringWriter(), s);
}
}
I'm hoping there's an attribute I can place above the ListOfTs
definition that says to the serialize, "assume an instance of List<T>
when serializing/deserializing".