Проблема при использовании сериализатора protobuf-net для WCF - PullRequest
1 голос
/ 28 января 2011

Мы используем protobuf-net для сериализации моего контракта на данные WCF. При сериализации я получаю сообщение об ошибке «В FingerPrint обнаружен повторяющийся тег 9»?

Я не использую никаких атрибутов, таких как [ProtoContract], [ProtoInclude] или [Protomember; Я использую [DataContract] и [DataMember] в своем классе.

Ответы [ 2 ]

0 голосов
/ 30 января 2011

ооо gr8 спасибо за ответ я выясняю проблему, почему это произошло. Мои классы содержат одно или несколько свойств (членов данных) с одинаковым порядком, т.е. order = 9, поэтому я и получил эту ошибку. Теперь я могу сериализовать и десериализовать свои классы, чтобы вы знали, столкнусь ли я с какой-либо другой проблемой. Было бы здорово, если бы вы сказали мне об ограничении protobuf.net.

Я планирую заменить весь сериализатор на этот. Еще больше я хочу добавить этот сериализатор (protobuf.net) в 10 раз быстрее, чем BinarySearilizer (согласно моему тестовому приложению) Еще раз спасибо.

0 голосов
/ 28 января 2011

protobuf-net будет (при отсутствии чего-то более явного) использовать Order из любых атрибутов [DataMember];Итак - есть ли отмеченные 9?Как много?Каждый идентификатор должен быть уникальным для каждого типа в protobuf-net.

Можете ли вы добавить [ProtoMember], чтобы присвоить ему новый идентификатор?Если файл генерируется кодом, вы также можете иметь частичный класс с [ProtoPartialMember] против тип (не член), чтобы добиться того же.

...