XamlXmlWriter Třída

Definice

TextWriter Používá 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í XamlWriter API má několik metod, které zapisují různé typy uzlů XAML. Souhrnně se tyto údaje označují v dokumentaci jako Write metody dokumentace 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 požadovaný prvek, atribut nebo hodnotu lze zapsat, nebo zda je vyvolána výjimka. Pokud například zavoláte WriteEndObject a stav pozice aktuálního XamlXmlWriter uzlu je na hodnotě nebo v rámci člena, vyvolá se výjimka. Volající XamlXmlWriter rozhraní API 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 XamlXmlWriter oboru názvů XAML je složité a není omezeno na explicitní volání WriteNamespace. Místo toho mohou další Write volání, například WriteStartObject, 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 pomocí informací ze INamespacePrefixLookup služby určí upřednostňovanou předponu. 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 buď InvalidOperationException nebo XamlXmlWriterException.

Často InvalidOperationException označuje, že čtenář XAML předal neplatnou strukturu uzlu do datového proudu uzlu XAML. 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á výjimku InvalidOperationException. Všichni zapisovači XAML by takovou operaci považovali za neplatnou. Dalším příkladem InvalidOperationException je situace, kdy 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.

A 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í. Může XamlXmlWriterException naznačovat konkrétní případy, kdy XamlXmlWriter porušuje svůj vlastní stav nebo nastavení. Příkladem XamlXmlWriterException může být pokus o zápis informací o oboru názvů XAML do pozice, kterou XamlXmlWriter formát serializace nepodporuje nebo zapisuje duplicitní členy, pokud je instance zakázána XamlXmlWriterSettings .

Konstruktory

Name Description
XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings)

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

XamlXmlWriter(Stream, XamlSchemaContext)

Inicializuje novou instanci XamlXmlWriter třídy ze streamu.

XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings)

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

XamlXmlWriter(TextWriter, XamlSchemaContext)

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

XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings)

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

XamlXmlWriter(XmlWriter, XamlSchemaContext)

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

Vlastnosti

Name Description
IsDisposed

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

(Zděděno od XamlWriter)
SchemaContext

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

Settings

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

Metody

Name Description
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()

Flush Volá metodu základního objektu 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 uzlu 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 objektu 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)

Zapíše informace o oboru názvů do podkladového objektu 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 Write metodu pro implementaci zapisovače.

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

Zapíše počáteční členský uzel XAML do podkladového XmlWriter uzlu 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 objektu 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 objektu 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í

Name Description
IDisposable.Dispose()

Viz Dispose().

(Zděděno od XamlWriter)

Platí pro

Viz také