Краткий ответ "да" ...
Сама спецификация протокольных буферов не обеспечивает стек RPC, но некоторые из них были добавлены за пределы спецификации.
Во-первых, protobuf-net имеет хуки для WCF, позволяющие пометить операции в контракте на обслуживание как ProtoBehavior
. Затем это заменяет обычный DataContractSerializer
на использование сериализации protobuf-net. Однако есть несколько предостережений:
- ваши члены-данные должны иметь явный порядок (например,
[ProtoMember(Order = 1)]
), поскольку он использует эти числа в качестве идентификаторов полей (в буферах протокола используются числовые поля)
- лучше всего работает с совместным использованием сборок / классов (контракта на обслуживание и т. Д.), Так как это пользовательское поведение не отображается в "mex"
При использовании с базовым HTTP-транспортом, это также совместимо с MTOM (если включено) для максимальной производительности. Производительность нетривиальных сообщений во многом пропорциональна их размеру; Вы можете получить представление о размерах protobuf-net здесь .
Кроме того, я также работаю над стеком RPC на заказ. Текущая сборка имеет рабочий стек по протоколу http, но я также планирую включить его в сыром TCP / IP, когда у меня будет такая возможность. У меня еще не было возможности написать это, но я могу предоставить примеры по запросу. Обратите внимание, что для наиболее удобного использования вам также понадобится библиотека расширений 3.5.
Любые вопросы, добавьте комментарий или напишите мне (см. Мой профиль).