好的,我们对某些内容进行了序列化/反序列化,但是当您处理人员重要数据时,您需要保证对象在100%上被正确序列化/反序列化。例如,当您的应用程序在序列化期间死掉/被迫关闭时,就让我们看看情况吧。在大多数情况下,您将得到损坏的对象,这对我来说是不可接受的,我不确定我可以手工地处理文件和写标志,在开始序列化之前先做一些未实现的操作,并添加在进程结束时已完成的标志,如果在反序列化过程中无法实现,则从备份中提取文件。这是不好的,因为我必须备份非常大的文件后,每次更改。在.NET框架中流行的序列化程序中是否有一些构建在faile安全逻辑中,或者可能是protobuf?我找不到任何关于安全串行化的信息。或者你能告诉我一些好的模式如何使串行化安全吗?
发布于 2013-12-21 03:42:01
序列化与此无关。您的实际问题是:如何将一堆数据原子地写入磁盘?以下是一些选择:
FILE_FLAG_WRITE_THROUGH | FILE_FLAG_NO_BUFFERING
在单个写调用中原子地写入单个磁盘扇区。.tmp
文件并原子地重命名为想要的文件名https://stackoverflow.com/questions/20718017
复制