gpt4 book ai didi

c# - 如何将 .net 类序列化到磁盘

转载 作者:太空宇宙 更新时间:2023-11-03 17:06:00 25 4
gpt4 key购买 nike

我正在尝试将对象缓存序列化到磁盘,以便下次加载程序时可以加载它。被保存的类的特征之一是它包含对其他对象的引用。例如:我有一个存储远程 url、本地文件路径、是否已下载等的图像类列表。然后我将可见性绑定(bind)到已下载,将源绑定(bind)到本地文件路径。其他对象引用了这张图片,所以当图片被下载时,它会更新一次,所有指向它的项目的所有绑定(bind)都会更新。

作为快速修复,我实现了一个二进制格式化程序,并且一切正常。我所有的列表都序列化到磁盘,当我重新加载它们时,所有引用都保留(创建了 I.E 1 图像对象并且使用它的所有内容都有一个引用,而不是每次出现时反序列化创建一个新的图像实例)

我的问题是我应该使用哪种 Serialier 来存储到磁盘而不破坏我的引用?我读过 BinaryFormatter 是序列化到磁盘并期望它在不同版本中工作的错误选择。虽然到目前为止我没有遇到任何问题,但我不想在一年后遇到问题并迫使我的所有用户重新获取他们所有缓存的元数据。

我不是 100% 确定所有不同的序列化器是如何工作的,但我想如果我要使用 XML,我可能需要编写某种转换器。如果有帮助,我的所有图像对象都分配了一个 GUID,因此我对每个对象都有一些独特之处。

更新:我刚刚发现以下问题看起来很相似 Maintain object references through Serialize/Deserialize谁能告诉我 Datacontractserializer 是否是跨不同应用程序版本的长期序列化存储的好选择,以及 binaryformatter 的缺点?

最佳答案

不需要任何转换器和其他东西,只需检查一下:

http://www.switchonthecode.com/tutorials/csharp-tutorial-xml-serialization

关于c# - 如何将 .net 类序列化到磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11411091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com