是否有序列化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