次の方法で共有


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 拡張機能により変更できる新しいメモリ バッファーを表す Stream

次の例では、Stream渡されたChainStream変数と戻り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 拡張機能は、渡された参照と返されたChainStreamChainStreamオブジェクトのStream参照を保存するStream必要があります。 SOAP 拡張機能が XML Web サービス メソッドを使用して実行するように構成されている場合、 Stream 渡される ChainStream SOAP 要求 BeforeDeserializeSoapMessageStageは . 同様に、シリアル化が Stream 発生したときに返される ChainStream 参照が書き込まれるため、シリアル化された SOAP 応答が AfterSerializeSoapMessageStage.

適用対象