可能重复:
如何序列化 IList<T>?
我希望序列化一个S
包含我定义的另一个类的类型IList<T>
的属性的类(我们称之为它)。T
当我尝试将类的实例序列化为S
XML 时出现异常。这是可以理解的,因为XmlSerializer
不知道要使用哪个具体类。有没有办法,希望使用属性,在序列化/反序列化实例时指定要实例化的具体类。我的类实现S
创建了一个类的实例List<T>
。这是一些代码来说明我的示例:
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);
}
}
我希望有一个属性可以放在ListOfTs
对序列化说的定义之上,“假设List<T>
序列化/反序列化时的一个实例”。