簡単な答えは「はい」です...
プロトコルバッファ仕様自体はRPCスタックを提供しませんが、仕様外に追加されたものもあります。
まず、protobuf-netにはWCFのフックがあり、サービスコントラクトの操作をとしてマークできますProtoBehavior
。次に、これは通常のスワップDataContractSerializer
を使用してprotobuf-netシリアル化を使用します。ただし、いくつかの注意点があります。
- データメンバーは明示的な順序(例
[ProtoMember(Order = 1)]
)を持っている必要があります。これは、これらの数値をフィールド識別子として使用するためです(プロトコルバッファは数値フィールドを使用します)
- このカスタム動作は「mex」で公開されていないため、(サービスコントラクトなどの)アセンブリ/クラス共有で最適に機能します。
基本的なhttpトランスポートと一緒に使用すると、これはMTOM(有効になっている場合)とも互換性があり、最大のスループットが得られます。重要なメッセージのパフォーマンスは、そのサイズに大きく比例します。ここでprotobuf-netのサイズのアイデアを得ることができます。
または、特注のRPCスタックにも取り組んでいます。現在のビルドにはhttp上で機能するスタックがありますが、機会があれば生のTCP/IPでも有効にする予定です。私はまだそれを書く機会がありませんでした、しかし私は要求に応じて例を提供することができます。これを最も便利に使用するには、3.5の「拡張機能」dllも必要になることに注意してください。
ご不明な点がございましたら、コメントを追加するか、私にメールしてください(私のプロフィールを参照してください)。