我的客户要求我通过 HTTP/SOAP 为 .NET Remoting 实现 MTOM/XOP 以进行远程流访问(例如,文件上传)。WCF Web 服务不是一个选项。
所以,我要做的是修改我们的自定义 SoapClientFormatterSink 和 SoapServerFormatterSink 来完成这项工作,即 SerializeMessage 方法,它采用 IMessage 并且如果消息参数的值之一是 Stream 类型,XOP 信息集的节点被插入到流中等等。
public class CompatibleSoapClientFormatterSink : IClientFormatterSink
{
...
private void SerializeMessage(IMessage message, out ITransportHeaders headers, out Stream stream)
{
...
}
问题是我不明白如何将二进制流放入 SOAP 请求和一般这种方法的实现。
有人可以指导我如何实施吗?
任何 MTOM/XOP 实现的代码示例都将不胜感激。