Поделиться через


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 в ChainStream , так и Stream возвращаемые из ChainStream в переменных-членах 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 должны сохранять ссылки на переданные Stream в ChainStream и Stream возвращаемые из ChainStream. Если расширение SOAP настроено для запуска с помощью метода веб-службы XML, переданный Stream в ChainStream содержит сериализованный запрос SOAP в BeforeDeserializeSoapMessageStage. Аналогичным образом, ссылка, возвращаемая из , Stream записывается в , когда происходит сериализация, и, таким образом, содержит сериализованный ответ SOAP в AfterSerializeSoapMessageStage.ChainStream

Применяется к