次の方法で共有


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 に渡された StreamChainStream から返された 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 名前空間