IStreamProvider Rozhraní
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje rozhraní, které lze implementovat pomocí tříd poskytujících datové proudy.
public interface class IStreamProvider
public interface IStreamProvider
type IStreamProvider = interface
Public Interface IStreamProvider
Poznámky
Při zápisu odchozí zprávy obsahující streamované tělo do zapisovače Message XML použije posloupnost volání podobná následující v jeho OnWriteBodyContents(XmlDictionaryWriter) implementaci:
Zapište všechny potřebné informace před streamem (například počáteční značka XML).
Napište stream.
Zapište všechny informace za streamem (například koncová značka XML).
To funguje dobře s kódováními, které jsou podobné textovému kódování XML. Existují však některá kódování, která neumisťují informace xml infosetu (například značky pro počáteční a koncové elementy XML) společně s daty obsaženými v elementech. Například v kódování MTOM je zpráva rozdělena do více částí. Jedna část obsahuje informační sadu XML, která může obsahovat odkazy na jiné části pro skutečný obsah elementu. Vzhledem k tomu, že informační sada XML bude obvykle malá ve srovnání s streamovaným obsahem, dává smysl ukládat informace do vyrovnávací paměti, zapsat ji a pak zapsat obsah streamovaným způsobem. To znamená, že po napsání značky koncového prvku bychom ještě neměli zapsat stream.
Pro tento účel se používá rozhraní IStreamProvider. Rozhraní má metodu GetStream() , která vrací datový proud, který má být zapsán. Správný způsob, jak napsat text streamované zprávy v OnWriteBodyContents(XmlDictionaryWriter), je tento:
Zapište všechny potřebné informace před streamem (například počáteční značka XML).
Zavolejte přetížení ve
WriteValues příkazem XmlDictionaryWriter a implementací IStreamProvider, která vrací datový proud k zápisu.Zapište všechny informace za streamem (například koncová značka XML).
Při tomto přístupu má zapisovač XML možnost, kdy volat GetStream() a zapisovat streamovaná data. Textové a binární zapisovače XML ho například okamžitě volají a zapisují streamovaný obsah mezi počátečními a koncovými značkami. Zapisovač MTOM se může rozhodnout zavolat GetStream() později, až bude připraven napsat příslušnou část zprávy.
Metody
| Name | Description |
|---|---|
| GetStream() |
Získá datový proud. |
| ReleaseStream(Stream) |
Uvolní datový proud pro výstup. |