XamlXmlWriter Třída
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í.
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
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á |
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 |
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) |