我正在使用C#中的序列化,现在我遇到了一个我似乎无法找到答案的问题。所以我有一个可序列化的类,并将另一个可序列化类的列表作为属性。我需要列表中的项目之一具有不同的属性,所以我创建了一个子类,并像以前一样将它添加到列表中。那时序列化问题出现了,所以我只能想象列表不能被序列化为继承类,但为什么?而如何满足类似的目标呢?无论如何,这是我想要实现的一个例子:使用继承类型的列表序列化
[Serializable]
public class aList
{
[XmlElement]public List<b> list = new List<b>();
public aList()
{
list.Add(new b());
list.Add(new b());
list.Add(new c());
}
}
[Serializable]
public class b
{
[XmlElement]public int prop1;
[XmlElement]public string prop2;
public b()
{
prop1 = 0;
prop2 = String.Empty;
}
}
[Serializable]
public class c : b
{
[XmlElement]public bool prop3;
public c() : base()
{
prop3 = false;
}
}
注意'Serializable'无关与XML序列化。它仅适用于二进制序列化。 – 2011-04-05 21:28:01