IStreamProvider インターフェイス

定義

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

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

注釈

ストリーム本文を含む送信メッセージを XML ライターに書き込む場合、 Message は、 OnWriteBodyContents(XmlDictionaryWriter) 実装で次のような一連の呼び出しを使用します。

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

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

  • ストリームの後に情報を書き込みます (たとえば、終了 XML タグ)。

これは、テキスト XML エンコードに似たエンコードで適切に機能します。 ただし、XML インフォセット情報 (開始および終了 XML 要素のタグなど) と要素に含まれるデータを配置しないエンコードがいくつかあります。 たとえば、MTOM エンコードでは、メッセージは複数の部分に分割されます。 1 つのパーツには XML 情報セットが含まれています。XML 情報セットには、実際の要素の内容に対する他の部分への参照が含まれている場合があります。 XML 情報セットは通常、ストリーミングされたコンテンツと比較して小さいため、インフォセットをバッファーに格納し、書き出して、ストリーミングされた方法でコンテンツを書き込むのが理にかなっています。 つまり、終了要素タグが書き込まれるまでに、ストリームをまだ書き出すべきではありません。

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

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

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

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

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

メソッド

名前 説明
GetStream()

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

ReleaseStream(Stream)

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

適用対象