使用Protobuf-net更新特定条目

时间:2014-06-17 18:30:24

标签: c# protobuf-net

我有一个使用Protofbuf-Net序列化的对象列表(假设class AccessLevel)。

对象不是固定大小的,是否可以更新序列化文件中的单个对象(基于索引)而不重写整个文件?

1 个答案:

答案 0 :(得分:2)

如果更改使其变小或不影响大小:可能,但库中没有任何内容可以帮助您执行此操作,因为它不是受支持的方案。对于相同长度:只是覆盖。当然,提前知道长度是一个技巧:)

在协议级别,缩小大小时:您可以通过伪造未使用的字段来填充数据,或者使用现有字段的次优varint编码(除了连续位之外没有任何其他字节)。

如果它变得更大:没有多少技巧可以帮助你免于重做整个文件。

这些都是理论上的。一个更实际的答案可证明:没有。