SoapExtension.ChainStream(Stream) 方法

定义

在派生类中重写时,允许 SOAP 扩展访问包含 SOAP 请求或响应的内存缓冲区。

public:
 virtual System::IO::Stream ^ ChainStream(System::IO::Stream ^ stream);
public virtual System.IO.Stream ChainStream(System.IO.Stream stream);
abstract member ChainStream : System.IO.Stream -> System.IO.Stream
override this.ChainStream : System.IO.Stream -> System.IO.Stream
Public Overridable Function ChainStream (stream As Stream) As Stream

参数

stream
Stream

包含 SOAP 请求或响应的内存缓冲区。

返回

表示 Stream 此 SOAP 扩展可以修改的新内存缓冲区。

示例

以下示例同时 Stream 保存传入 ChainStream 的传入项和 Stream 成员 ChainStream 变量 oldStream 中返回的值,以及 newStream分别返回的变量。

public:
   virtual Stream^ ChainStream( Stream^ stream ) override
   {
      oldStream = stream;
      newStream = gcnew MemoryStream;
      return newStream;
   }
public override Stream ChainStream( Stream stream ){
    oldStream = stream;
    newStream = new MemoryStream();
    return newStream;
}
Public Overrides Function ChainStream(stream As Stream) As Stream
    m_oldStream = stream
    m_newStream = New MemoryStream()
    Return m_newStream
End Function

注解

ChainStream 确保优先级最高的 SOAP 扩展可以修改最接近通过网络发送或返回的 SOAP 消息的实际数据。

SOAP 扩展应保存传入StreamChainStream引用和从Stream中返回的ChainStream引用。 如果 SOAP 扩展配置为使用 XML Web 服务方法运行, Stream 则传入 ChainStream 的 XML Web 服务方法包含序列化的 BeforeDeserializeSoapMessageStageSOAP 请求。 同样, Stream 序列化发生时,返回的 ChainStream 引用将写入其中,从而包含序列化的 AfterSerializeSoapMessageStageSOAP 响应。

适用于