无论如何要序列化数据合同列表吗?我为列表创建了一个数据合同,如下所示:
[DataContract]
class ItemList<T>
{
public ItemList()
{
items=new List<T>();
}
[DataMember]
public List<T> items;
}
我有 3 个类 Config、Config_V1、Config_V2,其属性为 [Name="Config"],这让我可以在 Config 类的 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");
但是在使用 ReadObj 反序列化时出现错误,表明它需要一个 ConfigData_V2 的列表,但它找到了一个 ConfigData_V1 的列表。难道它不只是使用 ConfigData 类的版本来解决这个冲突吗?