私の顧客は、リモートストリームアクセス(ファイルのアップロードなど)のためにHTTP/SOAPを介して.NETRemotingにMTOM/XOPを実装するように依頼しました。WCFWebサービスはオプションではありません。
したがって、私がしなければならないのは、カスタムSoapClientFormatterSinkとSoapServerFormatterSinkを変更して、ジョブを実行することです。つまり、IMessageを受け取るSerializeMessageメソッドと、Stream型のメッセージパラメーターの値の1つである場合、XOPinfosetのノードがstreamに挿入されます。
public class CompatibleSoapClientFormatterSink : IClientFormatterSink
{
...
private void SerializeMessage(IMessage message, out ITransportHeaders headers, out Stream stream)
{
...
}
問題は、バイナリストリームをSOAPリクエストに入れる方法と、このアプローチの一般的な実装を理解していないことです。
誰かが私にそれをどのように実装するかについての指示を与えることができますか?
MTOM/XOP実装のコードサンプルをいただければ幸いです。