С Protobuf-net, позволяет ли десериализация повторно использовать существующие экземпляры, если они совпадают? - PullRequest
3 голосов
/ 17 июня 2010

Я использую Protobuf-net.Предположим, у меня есть список сериализованных объектов Gizmo, и что каждый объект Gizmo ссылается на объект Gazoo.Объект Gazoo может быть тем же объектом, на который ссылаются несколько объектов Gizmo.

Как будет работать десериализация в этой ситуации?

Получу ли я более одной копии Gazoos для одной и той же указанной вобъекты gizmo?

Что я ожидаю, так это одну копию Gazoo для всех дубликатов в сериализованных данных.

1 Ответ

6 голосов
/ 18 июня 2010

формат проводника, определенный google, представляет собой сериализатор tree , а не сериализатор graph , поэтому ссылки на объекты не сохраняются. Однако, как только я получу «v2», у меня есть некоторые злобные планы взломать поддержку объектных ссылок / графиков в модели - в основном (в этом режиме), включая дополнительные данные идентификатора объекта. Однако это сделает несколько сложным для использования в сценариях взаимодействия - в идеале это хорошо только для protobuf-net <===> protobuf-net.

Но ничего сегодня - вы получите несколько копий или, если получите циклическую ссылку, она должна взорваться.


В качестве обновления: теперь это доступно в protobuf-net v2, но как специфическая для реализации функция вне спецификации кода.

...