Google protobuf - отличный протокол для эффективной сериализации объектов, но он только поддерживает сериализацию деревьев, а не графиков (отсутствие полного отслеживания ссылок на объекты) ).
Реализации идеи Google в .NET немного. (т.е. protobuf-csharp-port или protosharp ), но наиболее интересным является protobuf-net .
Protobuf-net лучше, потому что его архитектура соответствует миру .NET, и имеет несколько надстроек (не всегда совместимых с исходным protobuf, но очень полезных).
Одной из этих надстроек является возможность включить отслеживание ссылок (опция AsReference), что позволяет сериализовать сложные графики даже с циклами.
Ненужная Protobuf-net v2 находится в бета-версии, а опция AsReference не работает в реальных сценариях . (без этой опции все работает хорошо, но без ссылки Tracikng protobuf-net не может сериализовать графики и больше не является привлекательным сериализатором).
В нем все еще есть некоторые ошибки:
Итак, я не могу использовать это отличный инструмент, и я ищу альтернативный сериализатор, который: