我想确定要反序列化的文件是否是 protobuf 序列化的。这是因为我想提供多个选项来为用户序列化和反序列化文件。我正在使用 protobuf.net 序列化为 protobuf 格式。
不存在明确的 protobuf 标记,因此您所能做的就是测试某些东西是否可能是protobuf。您可以通过尝试反序列化(并注意失败)来做到这一点,或者简单地通过 ProtoReader API 运行它并查看它是否干净地运行到最后,也许使用 SkipField() (但是,如果您使用 SkipField(),则不是这样,有一些内部有效负载可以完全跳过 - 我可以构造一个示例,该示例在使用 SkipField() 时通过,但在正确反序列化时失败)。
由于您使用的是文件,因此您还可以使用文件扩展名作为附加提示。
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |