IStreamProvider インターフェイス

定義

ストリームを提供するクラスによって実装できるインターフェイスを表します。

public interface class IStreamProvider
public interface IStreamProvider
type IStreamProvider = interface
Public Interface IStreamProvider

注釈

ストリーミングされた本文を含む送信メッセージを XML ライターに書き込むときに、MessageOnWriteBodyContents(XmlDictionaryWriter) 実装で次のような一連の呼び出しを使用します。

  • ストリームの前に必要な情報 (XML 開始タグなど) を書き込みます。

  • ストリームを書き込みます。

  • ストリームの後に情報 (XML 終了タグなど) を書き込みます。

これは、テキスト XML エンコーディングに類似するエンコードで有効に機能します。 ただし、要素内に含まれるデータと共に、XML Infoset 情報 (XML 要素を開始および終了するためのタグなど) を配置しないエンコードもあります。 たとえば、MTOM エンコーディングでは、メッセージは複数の部分に分割されます。 ある部分に XML Infoset が含まれ、要素の実際のコンテンツについては他の部分への参照が含まれている場合があります。 通常、XML Infoset は、ストリーミングされたコンテンツと比べるとサイズが小さいため、Infoset をバッファーに格納し、これを書き込んでから、ストリーミング方式でコンテンツを書き込むことには意味があります。 これは、終了要素タグが書き込まれるまでは、ストリームを書き込むことができないことを意味します。

このために、 IStreamProvider インターフェイスが使用されます。 このインターフェイスには、書き込むストリームを返す GetStream() メソッドがあります。 OnWriteBodyContents(XmlDictionaryWriter) でストリーミングされたメッセージ本文を書き込む適切な方法は次のとおりです。

  • ストリームの前に必要な情報 (XML 開始タグなど) を書き込みます。

  • 書き込むストリームを返す WriteValue 実装で、 XmlDictionaryWriter を受け取る IStreamProviderに対して IStreamProvider オーバーロードを呼び出します。

  • ストリームの後に情報 (XML 終了タグなど) を書き込みます。

この方法を使用すると、XML ライターは GetStream() を呼び出し、ストリーミングされたデータを書き込む時期を選択できます。 たとえば、テキスト XML ライターやバイナリ XML ライターは、このメソッドをすぐに呼び出し、開始タグと終了タグの間にストリーミングされたコンテンツを書き込むことができます。 MTOM ライターは、メッセージの適切な部分を書き込む準備ができたときに、後で GetStream() を呼び出すことができます。

メソッド

GetStream()

ストリームを取得します。

ReleaseStream(Stream)

出力するストリームを解放します。

適用対象