IStreamProvider Interfejs
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje interfejs, który można zaimplementować przez klasy dostarczające strumienie.
public interface class IStreamProvider
public interface IStreamProvider
type IStreamProvider = interface
Public Interface IStreamProvider
Uwagi
Podczas pisania komunikatu wychodzącego zawierającego treść strumieniową do modułu zapisywania Message XML funkcja będzie używać sekwencji wywołań podobnych do następujących w implementacji OnWriteBodyContents(XmlDictionaryWriter) :
Napisz wszelkie niezbędne informacje poprzedzające strumień (na przykład otwierający tag XML).
Zapisz strumień.
Zapisz wszelkie informacje po strumieniu (na przykład zamykający tag XML).
Działa to dobrze z kodowaniami podobnymi do kodowania tekstowego XML. Istnieją jednak pewne kodowanie, które nie umieszczają informacji o zestawie informacji XML (na przykład tagów do uruchamiania i kończenia elementów XML) wraz z danymi zawartymi w elementach. Na przykład w kodowaniu MTOM komunikat jest podzielony na wiele części. Jedna część zawiera zestaw informacji XML, który może zawierać odwołania do innych części dla rzeczywistej zawartości elementu. Ponieważ zestaw informacji XML będzie zwykle mały w porównaniu ze strumieniową zawartością, warto buforować zestaw informacji, zapisywać go, a następnie zapisywać zawartość w strumieniowy sposób. Oznacza to, że przez czas zapisywania tagu elementu zamykającego nie powinniśmy jeszcze zapisywać strumienia.
Interfejs IStreamProvider jest używany w tym celu. Interfejs ma metodę GetStream() , która zwraca strumień do zapisania. Prawidłowym sposobem na zapisanie treści przesyłanej strumieniowo wiadomości w programie OnWriteBodyContents(XmlDictionaryWriter) jest następująca:
Napisz wszelkie niezbędne informacje poprzedzające strumień (na przykład otwierający tag XML)
Wywołaj przeciążenie
WriteValuena XmlDictionaryWriter, które przyjmuje IStreamProvider z implementacją zwracającą strumień do zapisaniaIStreamProvider.Napisz wszelkie informacje po strumieniu (na przykład zamykający tag XML)
W przypadku tego podejścia moduł zapisywania XML może wybrać, kiedy wywoływać GetStream() i zapisywać przesyłane strumieniowo dane. Na przykład tekstowe i binarne zapisy XML będą wywoływać je natychmiast i zapisywać strumieniową zawartość między tagami początkowymi i końcowymi. Element MTOM może zdecydować się na późniejsze wywołanie GetStream(), gdy będzie gotowy do napisania odpowiedniej części wiadomości.
Metody
| Nazwa | Opis |
|---|---|
| GetStream() |
Pobiera strumień. |
| ReleaseStream(Stream) |
Zwalnia strumień do danych wyjściowych. |