好的,我们会对某些内容进行实现/反序列化,但是当您处理人员重要数据时, 你需要保证100%正确地序列化/反序列化对象。例如,假设您的应用程序在序列化期间被强制关闭时会出现这种情况。在大多数情况下,您将获得损坏的对象,这对我来说是不可接受的,我不知道我可以手动执行文件备份并写入标记,在开始序列化之前lke uncommited并在proccess结束时添加提交的标志,如果在反序列化期间它是uncommited则从备份中获取文件。这不好,因为我必须在每次更改后备份非常大的文件。在.NET Framework或protobuf中的流行序列化器中是否存在一些易损安全逻辑?我找不到任何信息abaut faile安全序列化。 或者你能告诉我一些好的模式如何使序列化错误安全吗?
答案 0 :(得分:2)
序列化与此无关。您的实际问题是:如何以原子方式将大量数据写入磁盘?以下是一些选项:
FILE_FLAG_WRITE_THROUGH | FILE_FLAG_NO_BUFFERING
在单个写入调用中以原子方式写入单个磁盘扇区。.tmp
文件并以原子方式重命名为所需文件名