Bagikan melalui


IStreamProvider Antarmuka

Definisi

Mewakili antarmuka yang dapat diimplementasikan oleh kelas yang menyediakan aliran.

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

Keterangan

Saat menulis pesan keluar yang berisi isi yang dialirkan ke penulis XML, Message akan menggunakan urutan panggilan yang mirip dengan yang berikut ini dalam implementasinya OnWriteBodyContents(XmlDictionaryWriter) :

  • Tulis informasi yang diperlukan sebelum aliran (Misalnya, tag XML pembuka).

  • Tulis aliran.

  • Tulis informasi apa pun setelah aliran (Misalnya, tag XML penutup).

Ini berfungsi dengan baik dengan pengodean yang mirip dengan pengodean XML tekstual. Namun, ada beberapa pengodean yang tidak menempatkan informasi infoset XML (Misalnya, tag untuk memulai dan mengakhiri elemen XML) bersama dengan data yang terkandung dalam elemen. Misalnya, dalam pengodean MTOM, pesan dibagi menjadi beberapa bagian. Satu bagian berisi himpunan info XML, yang mungkin berisi referensi ke bagian lain untuk konten elemen aktual. Karena himpunan info XML biasanya akan kecil dibandingkan dengan konten yang dialirkan, masuk akal untuk menyangga infoset, menulisnya, lalu menulis konten dengan cara yang dialirkan. Ini berarti bahwa pada saat tag elemen penutup ditulis, kita seharusnya belum menulis aliran.

Untuk tujuan ini, antarmuka IStreamProvider digunakan. Antarmuka memiliki metode GetStream() yang menampilkan aliran yang akan ditulis. Cara yang benar untuk menulis isi pesan yang dialirkan di OnWriteBodyContents(XmlDictionaryWriter) adalah sebagai berikut:

  • Tulis informasi yang diperlukan sebelum aliran (Misalnya, tag XML pembuka)

  • Panggil muatan berlebih WriteValue pada XmlDictionaryWriter yang mengambil IStreamProvider, dengan implementasi IStreamProvider yang menampilkan aliran yang akan ditulis.

  • Tulis informasi apa pun yang mengikuti aliran (Misalnya, tag XML penutup)

Dengan pendekatan ini, penulis XML memiliki pilihan kapan harus memanggil GetStream() dan menulis data yang dialirkan. Misalnya, penulis XML tekstual dan biner akan segera memanggilnya dan menuliskan konten yang dialirkan di antara tag awal dan akhir. Penulis MTOM dapat memutuskan untuk memanggil GetStream() nanti, ketika siap untuk menulis bagian pesan yang sesuai.

Metode

GetStream()

Mendapatkan aliran.

ReleaseStream(Stream)

Merilis aliran ke output.

Berlaku untuk