是否有序列化datacontracts列表?我已經創建了列表中datacontract,是這樣的:序列化/反序列化DataContracts列表
[DataContract]
class ItemList<T>
{
public ItemList()
{
items=new List<T>();
}
[DataMember]
public List<T> items;
}
我有3個clases配置,Config_V1,Config_V2與屬性[名稱=「配置」]是什麼讓我用3個版本的之間的版本配置類。所以我想在這個Config類的ItemList之間進行序列化和反序列化。我曾嘗試類似:
ItemList<ConfigData_V1> l = new ItemList<ConfigData_V1>();
l.items.Add(config);
WriteObject<ItemList<ConfigData_V1>>("serialization.bin", l);
ItemList<ConfigData_V2> l2;
l2=ReadObject<ItemList<ConfigData_V2>>("serialization.bin");
但與說,它期待ConfigData_V2的列表,但它發現ConfigData_V1的列表ReadObj反序列化時,我得到一個錯誤。難道它只是使用ConfigData clas版本來解決這個衝突嗎?
我認爲這是序列化這個強類型的'List'本身(不是它的成員)就是這個問題。儘可能地嘗試一種無類型的List。 –
bluevector
@jonnyGold你是不對的。列表是可串行化的(IEnumereble 不)。問題在其他地方。 –
RredCat
@RrefCat我沒有說它不是可序列化的。我說這是事實,一個'List'被串行化,並且他試圖將它反序列化爲'List '。它們不一樣,所以它不起作用。他必須做到無類型化。 –
bluevector