在C#中保留异构数组

时间:2010-06-25 19:09:44

标签: c# list serialization

我有List<Animal>但在该列表中我有Animal的子类,例如Mammal

我应该使用[Serializable]接口来保持它并且这没有问题,除非我再次读回它,我不知道在恢复信息的时候数据来自哪个子类。

所以问题是,我该如何存储这些信息?

2 个答案:

答案 0 :(得分:4)

您不需要自己处理,因为框架序列化了类型,它知道在实际反序列化内容之前要创建哪个实例。只需创建一个样本,您就会看到会发生什么......; - )

答案 1 :(得分:1)

关键字将成为您的朋友。

很高兴知道关键字尝试执行强制转换并返回true或false,具体取决于强制转换是否成功。

如果你想要实际的对象,而不只是对它的类型感兴趣,你最好使用 as 关键字,然后检查 null 。这将为您节省在确定类型后再次投射它的步骤。