XamlXmlWriter Třída

Definice

TextWriter Používá třídu nebo XmlWriter podporu k zápisu streamu 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 metody označují v dokumentaci jako Write metody XamlWriter. XamlXmlWriter používá několik interní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 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 znát typ 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 Jiná volání, například WriteStartObject, mohou vyžadovat, Write 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 INamespacePrefixLookup služby k určení upřednostňované předpony. Explicitní WriteNamespace volání také můžou odložit nebo nemusí 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 XamlXmlWriter Write jsou obvykle buď InvalidOperationException nebo XamlXmlWriterException.

Často InvalidOperationException značí, že čtenář XAML předal neplatnou strukturu uzlu do streamu uzlu XAML. V tomto případě je struktura uzlu neplatná z důvodů, které nesouvisejí s ověřením schématu XAML nebo kontextu schématu XAML. Datový proud uzlu je spíše neplatný v jeho základní podobě. Pokud například chybná implementace čtečky XAML vygenerovala stream uzlu XAML, který obsahoval dva po sobě jdoucí StartObject uzly, pokus o volání druhé WriteStartObject vyvolá chybu 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 streamu 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 indikovat konkrétní případy, kdy XamlXmlWriter porušuje svůj vlastní stav nebo nastavení. Výsledkem může být například XamlXmlWriterException pokus o zápis informací o oboru názvů XAML do pozice, kterou XamlXmlWriter formát serializace nepodporuje, nebo zápis duplicitních členů, když je instance zakázána XamlXmlWriterSettings .

Konstruktory

XamlXmlWriter(Stream, XamlSchemaContext)

Inicializuje novou instanci XamlXmlWriter třídy 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 XamlXmlWriter třídy z základu TextWriter .

XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings)

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

XamlXmlWriter(XmlWriter, XamlSchemaContext)

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

XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings)

Inicializuje novou instanci XamlXmlWriter třídy z základu XmlWriter 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ý se XamlXmlWriter používá ke zpracování.

Settings

Získá nastavení zapisovače, které se používá XamlXmlWriter pro 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čí, zda se zadaný objekt rovná aktuálnímu objektu.

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

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

GetHashCode()

Slouží jako výchozí funkce hash.

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

Type Získá aktuální instanci.

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

Vytvoří použádnou kopii aktuálního souboru 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 prvku nebo TextWriter. Vyvolá výjimku, pokud aktuální pozice streamu uzlu XAML není v rámci člena nebo pokud interní stav zapisovače nepodporuje zápis do koncového člena.

WriteEndObject()

Zapíše koncový uzel 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 zadaný objekt je 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ůže však místo toho odložit zápis informací o oboru názvů, dokud zapisovač a stream 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í členový uzel XAML do podkladového XmlWriter prvku nebo TextWriter. Vyvolá výjimku, pokud je aktuální pozice streamu uzlu XAML v jiném členu nebo pokud není ve stavu oboru nebo zápisu, kde lze zapsat počáteční člen.

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, ve kterém lze zapsat spouštěcí objekt nebo pokud zapisovač není ve stavu, který může napsat spouštěcí objekt.

WriteValue(Object)

Zapíše uzel hodnoty XAML do podkladového XmlWriter prvku 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 třída Dispose().

(Zděděno od XamlWriter)

Platí pro

Viz také