SoapExtension.ChainStream(Stream) Metod

Definition

När det åsidosättas i en härledd klass, tillåter ett SOAP-tillägg åtkomst till minnesbufferten som innehåller SOAP-begäran eller -svaret.

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

Parametrar

stream
Stream

En minnesbuffert som innehåller SOAP-begäran eller -svaret.

Returer

En Stream som representerar en ny minnesbuffert som det här SOAP-tillägget kan ändra.

Exempel

I följande exempel sparas både den Stream skickade till ChainStream och den Stream som returneras från ChainStream i medlemsvariablerna oldStream respektive 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

Kommentarer

ChainStream ser till att SOAP-tillägg med högsta prioritet kan ändra de faktiska data som är närmast SOAP-meddelandet som skickas eller returneras via kabeln.

SOAP-tillägg bör spara referenser för den Stream som skickas till ChainStream och returneras Stream från ChainStream. Om SOAP-tillägget har konfigurerats för att köras med en XML-webbtjänstmetod innehåller det Stream som skickas till ChainStream den serialiserade SOAP-begäran i BeforeDeserializeSoapMessageStage. På samma sätt skrivs referensen Stream som returneras från ChainStream in i när serialiseringen inträffar och innehåller därmed det serialiserade SOAP-svaret i AfterSerializeSoapMessageStage.

Gäller för