SoapExtension.ChainStream(Stream) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在派生类中重写时,允许 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 扩展应保存传入Stream的ChainStream引用和从Stream中返回的ChainStream引用。 如果 SOAP 扩展配置为使用 XML Web 服务方法运行, Stream 则传入 ChainStream 的 XML Web 服务方法包含序列化的 BeforeDeserializeSoapMessageStageSOAP 请求。 同样, Stream 序列化发生时,返回的 ChainStream 引用将写入其中,从而包含序列化的 AfterSerializeSoapMessageStageSOAP 响应。