Что мне нужно сделать, чтобы воспроизвести эту ошибку? Первый бит (о сопоставлении контракта с данными) звучит так, как будто WCF вас не очень устраивает, что говорит о том, что у вас есть два похожих (но разных) контракта «в игре». Если вы повторно используете типы из общей библиотеки, это не должно быть проблемой.
Если вы делаете , исключая типы (и имея другую модель на клиенте и сервере), тогда он может получить bit tricker, так как "mex" не делает гарантировать, что позиции останутся нетронутыми (и, конечно, они регулярно меняются) - но вы можете исправить это в частичном классе, используя несколько [ProtoPartialMember(...)]
против типа (не красиво, но это работает).
Но я подчеркиваю - главная проблема здесь, кажется, WCF; если что не устраивает то, что код не кодирует / не компилирует и т. д., то мои руки довольно сильно связаны (поскольку это не так далеко, как общение с protobuf-net).