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 扩展可以修改的新内存缓冲区。

示例

以下示例分别将传入ChainStream的 和StreamChainStream中返回的 分别保存在Stream成员变量 oldStreamnewStream中。

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 扩展应保存传入ChainStreamStreamChainStream返回的 的引用Stream。 如果将 SOAP 扩展配置为使用 XML Web 服务方法运行,Stream则传入的 ChainStream 将包含 序列化的 SOAP 请求。BeforeDeserializeSoapMessageStage 同样, Stream 当序列化发生时,从 ChainStream 返回的引用将被写入,因此在 中包含序列化的 AfterSerializeSoapMessageStageSOAP 响应。

适用于