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 扩展可以修改的新内存缓冲区。
示例
以下示例分别将传入ChainStream的 和Stream从ChainStream中返回的 分别保存在Stream成员变量 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 扩展应保存传入ChainStream和Stream从 ChainStream返回的 的引用Stream。 如果将 SOAP 扩展配置为使用 XML Web 服务方法运行,Stream则传入的 ChainStream 将包含 序列化的 SOAP 请求。BeforeDeserializeSoapMessageStage 同样, Stream 当序列化发生时,从 ChainStream 返回的引用将被写入,因此在 中包含序列化的 AfterSerializeSoapMessageStageSOAP 响应。