SoapExtension.ChainStream メソッド
派生クラスでオーバーライドされると、SOAP 要求または応答を格納しているメモリ バッファに SOAP 拡張機能からアクセスできます。
Public Overridable Function ChainStream( _
ByVal stream As Stream _) As Stream
[C#]
public virtual Stream ChainStream(Streamstream);
[C++]
public: virtual Stream* ChainStream(Stream* stream);
[JScript]
public function ChainStream(
stream : Stream) : Stream;
パラメータ
- stream
SOAP 要求または応答を格納しているメモリ バッファ。
戻り値
この SOAP 拡張機能により変更できる新しいメモリ バッファを表す Stream 。
解説
ChainStream は、ワイヤ上で送信されるか、返される SOAP メッセージに一番近い実際のデータを優先度が高い SOAP 拡張機能により変更できるようにします。たとえば、暗号化 SOAP 拡張機能によりデータを暗号化する前に、圧縮 SOAP 拡張機能によりデータを圧縮することは望ましくありません。この処理を行うと、圧縮が不十分なデータ パケットがワイヤ上で送信されることになります。
SOAP 拡張機能は ChainStream に渡された Stream および ChainStream から返された Stream の参照を保存します。SOAP 拡張機能が XML Web サービス メソッドと共に動作するように設定されている場合は、 ChainStream に渡される Stream に、 BeforeDeserialize SoapMessageStage でシリアル化された SOAP 要求が格納されます。同様に、 ChainStream から返された Stream の参照はシリアル化が発生したときに書き込まれ、シリアル化された SOAP 応答が AfterSerialize SoapMessageStage に格納されます。
使用例
[Visual Basic, C#, C++] ChainStream に渡された Stream と ChainStream から返された Stream をそれぞれ、 oldStream
メンバ変数と newStream
メンバ変数に格納する例を次に示します。
Public Overrides Function ChainStream(stream As Stream) As Stream
m_oldStream = stream
m_newStream = New MemoryStream()
Return m_newStream
End Function
[C#]
public override Stream ChainStream( Stream stream ){
oldStream = stream;
newStream = new MemoryStream();
return newStream;
}
[C++]
public:
Stream* ChainStream( Stream* stream ){
oldStream = stream;
newStream = new MemoryStream();
return newStream;
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
参照
SoapExtension クラス | SoapExtension メンバ | System.Web.Services.Protocols 名前空間