我正在使用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