我有一个使用Protofbuf-Net序列化的对象列表(假设class AccessLevel
)。
对象不是固定大小的,是否可以更新序列化文件中的单个对象(基于索引)而不重写整个文件?
答案 0 :(得分:2)
如果更改使其变小或不影响大小:可能,但库中没有任何内容可以帮助您执行此操作,因为它不是受支持的方案。对于相同长度:只是覆盖。当然,提前知道长度是一个技巧:)
在协议级别,缩小大小时:您可以通过伪造未使用的字段来填充数据,或者使用现有字段的次优varint编码(除了连续位之外没有任何其他字节)。
如果它变得更大:没有多少技巧可以帮助你免于重做整个文件。
这些都是理论上的。一个更实际的答案可证明:没有。