我正在使用 Protobuf-net。假设我有一个序列化的 Gizmo 对象列表,并且每个 Gizmo 对象都引用一个 Gazoo 对象。Gazoo 对象可能是多个 Gizmo 对象引用的同一对象。
在这种情况下,反序列化将如何工作?
对于 Gizmo 对象中的同一个引用,我会获得多个 Gazoos 副本吗?
我期望的是一份 Gazoo 副本,用于序列化数据中的所有重复项。
我正在使用 Protobuf-net。假设我有一个序列化的 Gizmo 对象列表,并且每个 Gizmo 对象都引用一个 Gazoo 对象。Gazoo 对象可能是多个 Gizmo 对象引用的同一对象。
在这种情况下,反序列化将如何工作?
对于 Gizmo 对象中的同一个引用,我会获得多个 Gazoos 副本吗?
我期望的是一份 Gazoo 副本,用于序列化数据中的所有重复项。
google 定义的线格式是树序列化器,而不是图形序列化器,因此不保留对象引用。但是,一旦我发布了“v2”,我就有一些邪恶的计划将对象引用/图形支持破解到模型中——主要是通过(在该模式下)包括额外的对象 ID 数据。然而,这将使它在互操作场景中使用起来有些棘手 - 所以理想情况下只适用于 protobuf-net <===> protobuf-net。
但是今天什么都没有——你会得到多个副本,或者如果你得到一个循环引用,它应该会爆炸。
作为更新:这现在在 protobuf-net v2 中可用,但作为代码规范之外的特定于实现的功能。