在C#中持久化一个异构数组

3

我有一个List<Animal>,但是这个列表中包含了MammalAnimal的子类。

我应该用[Serializable]接口将其保存下来,这没有问题,但当我需要读回数据时,我不知道这些信息来自哪个子类。

我的问题是:如何存储这些信息?

2个回答

4

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


以不同的方式表达相同的意思 - 对象知道它是什么类型的;如果你需要知道,只需问它! :) - GalacticCowboy
哇,我很惊讶。这样的东西直接开箱即用... 不是你习惯的任何东西 :-) - user376591
与编程的早期相比,现在有很多东西可以“开箱即用”了... ;) - Lucero
有点是的。;) 我觉得这是一个代际问题。20年前,我正在进行我的第一门编程课程(在学生教学学生的设置中),那时并不是编程早期,但由于我对该主题感兴趣,所以我自己进行了相关的学习。从那时起,发生了很多变化。天啊,这让我看起来好老啊... - Lucero

1

isas 关键字将是你的好朋友。

了解 is 关键字尝试执行转换并根据转换是否成功返回 true 或 false 是很好的。

如果你想要实际对象,而不仅仅是它的类型,最好使用 as 关键字,然后检查它是否为 null。这将节省你在确定类型后再次进行转换的步骤。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接