Sdílet prostřednictvím


XamlXmlWriter Třída

Definice

Používá TextWriter nebo XmlWriter podporuje třídu k zápisu datového proudu uzlu XAML do textového nebo revizní serializovaného formuláře.

public ref class XamlXmlWriter : System::Xaml::XamlWriter
public class XamlXmlWriter : System.Xaml.XamlWriter
type XamlXmlWriter = class
    inherit XamlWriter
Public Class XamlXmlWriter
Inherits XamlWriter
Dědičnost
XamlXmlWriter

Poznámky

Tato třída se obvykle používá ve scénářích serializace.

Jak používat XamlXmlWriter

Rozhraní API XamlWriter má několik metod, které zapisují různé typy uzlů XAML. Souhrnně se označují v dokumentaci jako Write metody XamlWriter. XamlXmlWriter používá několik vnitřních tříd stavu k určení, co dělat, když je volána jedna z jeho Write implementací. Volání Write používá stavy k určení, zda je možné zapsat požadovaný prvek, atribut nebo hodnotu, nebo zda je vyvolána výjimka. Pokud například voláte WriteEndObject a stav XamlXmlWriter aktuální pozice uzlu je na hodnotě nebo v rámci člena, vyvolá se výjimka. Volající rozhraní API XamlXmlWriter by obvykle měli vědět o typu aktuálního uzlu XAML, který pochází ze čtečky XAML a datového proudu uzlu XAML. Na základě těchto znalostí by se volajícím měly vyhnout volání Write rozhraní API, která nejsou relevantní pro aktuální typ uzlu.

Obory názvů XAML a XamlXmlWriter

Chování zápisu oboru názvů XAML XamlXmlWriter je složité a není omezeno na explicitní volání WriteNamespace. Jiné Write volání, například WriteStartObject, mohou vyžadovat, aby deklarace oboru názvů byla zapsána v konkrétních bodech struktury uzlu. Zapisovač XAML buď vygeneruje předponu vlastní logikou, nebo používá informace ze služby INamespacePrefixLookup k určení upřednostňované předpony. Explicitní WriteNamespace volání mohou také odložit nebo můžou vrátit nic, pokud je deklarace oboru názvů XAML již použitelná a deklarována jinde.

Výjimky metody write

Výjimky vyvolané metodami XamlXmlWriterWrite jsou obvykle InvalidOperationException nebo XamlXmlWriterException.

InvalidOperationException často označuje, že čtečka XAML předala do datového proudu uzlu XAML neplatnou strukturu uzlů. V tomto případě je struktura uzlu neplatná z důvodů, které nesouvisí s ověřováním schématu XAML nebo kontextu schématu XAML. Datový proud uzlu je v základní podobě neplatný. Pokud například chybná implementace čtečky XAML vygenerovala datový proud uzlu XAML, který obsahoval dva po sobě jdoucí StartObject uzly, pokus o volání druhé WriteStartObject vyvolá InvalidOperationException. Všichni zapisovači XAML by takovou operaci považovali za neplatnou. Dalším příkladem InvalidOperationException je, že informace o oboru názvů XAML nejsou dostupné prostřednictvím kontextu schématu XAML, který se vztahuje na aktuální pozici datového proudu uzlu.

XamlXmlWriterException označuje výjimku, kdy se tato konkrétní implementace zapisovače XAML rozhodne vyvolat výjimku na základě zamýšlených funkcí. XamlXmlWriterException může indikovat konkrétní případy, kdy XamlXmlWriter porušuje svůj vlastní stav nebo nastavení. Například XamlXmlWriterException může mít za následek pokusy o zápis informací o oboru názvů XAML do pozice, kterou XamlXmlWriter a jeho formát serializace nepodporují nebo zapisují duplicitní členy, pokud je instance XamlXmlWriterSettings zakázat.

Konstruktory

XamlXmlWriter(Stream, XamlSchemaContext)

Inicializuje novou instanci třídy XamlXmlWriter ze streamu.

XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings)

Inicializuje novou instanci XamlXmlWriter třídy ze streamu pomocí objektu nastavení zapisovače.

XamlXmlWriter(TextWriter, XamlSchemaContext)

Inicializuje novou instanci třídy XamlXmlWriter z TextWriter základu.

XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings)

Inicializuje novou instanci XamlXmlWriter třídy z TextWriter základ pomocí objektu nastavení.

XamlXmlWriter(XmlWriter, XamlSchemaContext)

Inicializuje novou instanci třídy XamlXmlWriter z XmlWriter základu.

XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings)

Inicializuje novou instanci XamlXmlWriter třídy z XmlWriter základ pomocí objektu nastavení.

Vlastnosti

IsDisposed

Získá, zda Dispose(Boolean) byl volána.

(Zděděno od XamlWriter)
SchemaContext

Získá kontext schématu XAML, který tento XamlXmlWriter používá ke zpracování.

Settings

Získá nastavení zapisovače, které tento XamlXmlWriter používá ke zpracování XAML.

Metody

Close()

Zavře objekt zapisovače XAML.

(Zděděno od XamlWriter)
Dispose(Boolean)

Uvolní nespravované prostředky používané XamlXmlWriter a volitelně uvolní spravované prostředky.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
Flush()

Volá Flush metodu podkladové XmlWriter nebo TextWriter, která zapisuje cokoli, co je aktuálně ve vyrovnávací paměti, a poté zapisovač zavře.

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
WriteEndMember()

Zapíše koncový členský uzel XAML do podkladového XmlWriter nebo TextWriter. Vyvolá výjimku, pokud aktuální pozice datového proudu uzlu XAML není uvnitř člena nebo pokud interní stav zápisu nepodporuje zápis do koncového člena.

WriteEndObject()

Zapíše uzel koncového objektu XAML do podkladového XmlWriter nebo TextWriter. Vyvolá výjimku, pokud aktuální pozice streamu uzlu XAML, který se zpracovává, není kompatibilní s zápisem koncového objektu.

WriteGetObject()

Zapíše objekt pro případy, kdy je zadaný objekt výchozí nebo implicitní hodnota vlastnosti, která se zapisuje, místo aby byla zadána jako hodnota objektu ve vstupní sadě uzlů XAML.

WriteNamespace(NamespaceDeclaration)

Zapisuje informace o oboru názvů do podkladového XmlWriter nebo TextWriter. Může vyvolat výjimku pro určité stavy; Místo toho však může odložit zápis informací o oboru názvů, dokud zapisovač a datový proud uzlu XAML, který se zpracovává, dosáhne pozice, kde lze vložit deklaraci oboru názvů XAML.

WriteNode(XamlReader)

Provádí přepínání na základě typu uzlu ze čtečky XAML (NodeType) a volá příslušnou metodu Write pro implementaci zapisovače.

(Zděděno od XamlWriter)
WriteStartMember(XamlMember)

Zapíše počáteční členský uzel XAML do podkladového XmlWriter nebo TextWriter. Vyvolá výjimku, pokud je aktuální pozice datového proudu uzlu XAML v jiném členu nebo pokud není ve stavu oboru nebo zapisovače, kde lze zapsat počátečního člena.

WriteStartObject(XamlType)

Zapíše počáteční uzel objektu XAML do podkladového XmlWriter nebo TextWriter. Vyvolá výjimku, pokud aktuální pozice streamu uzlu XAML není v oboru, kde lze zapsat počáteční objekt, nebo pokud zapisovač není ve stavu, který může zapsat počáteční objekt.

WriteValue(Object)

Zapíše uzel hodnoty XAML do podkladového XmlWriter nebo TextWriter. Vyvolá výjimku, pokud je aktuální pozice streamu uzlu XAML neplatná pro zápis hodnoty nebo je zapisovač ve stavu, ve kterém nelze zapsat hodnotu.

Explicitní implementace rozhraní

IDisposable.Dispose()

Viz Dispose().

(Zděděno od XamlWriter)

Platí pro

Viz také