XamlXmlWriter Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Używa klasy obsługi TextWriter lub XmlWriter do zapisywania strumienia węzła XAML w postaci tekstowej lub znaczników serializacji.
public ref class XamlXmlWriter : System::Xaml::XamlWriter
public class XamlXmlWriter : System.Xaml.XamlWriter
type XamlXmlWriter = class
inherit XamlWriter
Public Class XamlXmlWriter
Inherits XamlWriter
- Dziedziczenie
Uwagi
Ta klasa jest zwykle używana w scenariuszach serializacji.
Jak używać narzędzia XamlXmlWriter
Interfejs API XamlWriter ma kilka metod, które zapisują różne typy węzłów XAML. Zbiorczo są one określane w dokumentacji jako metody Write
XamlWriter.
XamlXmlWriter używa kilku klas stanów wewnętrznych, aby określić, co zrobić, gdy jest wywoływana jedna z jego implementacji Write
. Wywołanie Write
używa stanów do określenia, czy żądany element, atrybut lub wartość można zapisać, czy też zgłaszany jest wyjątek. Jeśli na przykład wywołasz WriteEndObject, a stan bieżącego węzła XamlXmlWriter znajduje się na wartości lub w elemencie członkowskim, zostanie zgłoszony wyjątek. Zazwyczaj osoby wywołujące interfejs API XamlXmlWriter powinny mieć świadomość typu bieżącego węzła XAML pochodzącego z czytnika XAML i strumienia węzła XAML. Na podstawie tej wiedzy osoby wywołujące powinny unikać wywoływania interfejsów API Write
, które nie są istotne dla bieżącego typu węzła.
Przestrzenie nazw XAML i XamlXmlWriter
Zachowanie zapisywania przestrzeni nazw XAML XamlXmlWriter jest złożone i nie jest ograniczone do jawnych wywołań WriteNamespace. Zamiast tego inne wywołania Write
, takie jak WriteStartObject, mogą wymagać zapisania deklaracji przestrzeni nazw w określonych punktach struktury węzła. Składnik zapisywania XAML generuje prefiks przez własną logikę lub używa informacji z usługi INamespacePrefixLookup w celu określenia preferowanego prefiksu. Ponadto jawne wywołania WriteNamespace mogą odroczyć lub nie zwrócić nic, jeśli deklaracja przestrzeni nazw XAML jest już odpowiednia i zadeklarowana gdzie indziej.
Wyjątki metody zapisu
Wyjątki zgłaszane przez metody XamlXmlWriterWrite
są zazwyczaj InvalidOperationException lub XamlXmlWriterException.
InvalidOperationException często wskazuje, że czytnik XAML przekazał nieprawidłową strukturę węzła do strumienia węzła XAML. W takim przypadku struktura węzła jest nieprawidłowa z powodów, które nie są związane z walidacją schematu XAML lub kontekstu schematu XAML. Zamiast tego strumień węzła jest nieprawidłowy w postaci podstawowej. Jeśli na przykład wadliwa implementacja czytnika XAML wygenerowała strumień węzła XAML zawierający dwa kolejne węzły StartObject
, próba wywołania drugiego WriteStartObject zgłosi InvalidOperationException. Wszyscy autorzy XAML uznaliby, że taka operacja będzie nieprawidłowa. Innym przykładem InvalidOperationException jest to, że informacje o przestrzeni nazw XAML są niedostępne za pośrednictwem kontekstu schematu XAML, który ma zastosowanie do bieżącego położenia strumienia węzła.
XamlXmlWriterException wskazuje wyjątek, w którym ta konkretna implementacja modułu zapisywania XAML decyduje się zgłosić wyjątek na podstawie zamierzonej funkcjonalności. XamlXmlWriterException może wskazywać konkretne przypadki, w których XamlXmlWriter narusza własny stan lub ustawienia. Na przykład XamlXmlWriterException może wynikać z prób zapisania informacji o przestrzeni nazw XAML w pozycji, w którą XamlXmlWriter i jego format serializacji nie są obsługiwane lub zapisują zduplikowane elementy członkowskie, gdy wystąpienie XamlXmlWriterSettings go zabronić.
Konstruktory
XamlXmlWriter(Stream, XamlSchemaContext) |
Inicjuje nowe wystąpienie klasy XamlXmlWriter ze strumienia. |
XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings) |
Inicjuje nowe wystąpienie klasy XamlXmlWriter ze strumienia przy użyciu obiektu ustawień składnika zapisywania. |
XamlXmlWriter(TextWriter, XamlSchemaContext) |
Inicjuje nowe wystąpienie klasy XamlXmlWriter z TextWriter. |
XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings) |
Inicjuje nowe wystąpienie klasy XamlXmlWriter z podstawy TextWriter przy użyciu obiektu ustawień. |
XamlXmlWriter(XmlWriter, XamlSchemaContext) |
Inicjuje nowe wystąpienie klasy XamlXmlWriter z XmlWriter. |
XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings) |
Inicjuje nowe wystąpienie klasy XamlXmlWriter z podstawy XmlWriter przy użyciu obiektu ustawień. |
Właściwości
IsDisposed |
Pobiera, czy Dispose(Boolean) został wywołany. (Odziedziczone po XamlWriter) |
SchemaContext |
Pobiera kontekst schematu XAML używany przez tę XamlXmlWriter do przetwarzania. |
Settings |
Pobiera ustawienia modułu zapisywania używane przez tę XamlXmlWriter do przetwarzania XAML. |
Metody
Close() |
Zamyka obiekt modułu zapisywania XAML. (Odziedziczone po XamlWriter) |
Dispose(Boolean) |
Zwalnia niezarządzane zasoby używane przez XamlXmlWriter i opcjonalnie zwalnia zarządzane zasoby. |
Equals(Object) |
Określa, czy określony obiekt jest równy bieżącemu obiektowi. (Odziedziczone po Object) |
Flush() |
Wywołuje metodę |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
WriteEndMember() |
Zapisuje węzeł końcowy XAML do bazowego XmlWriter lub TextWriter. Zgłasza wyjątek, jeśli bieżące położenie strumienia węzła XAML nie znajduje się w elemencie członkowskim lub jeśli stan wewnętrzny składnika zapisywania nie obsługuje zapisywania do elementu członkowskiego końcowego. |
WriteEndObject() |
Zapisuje węzeł obiektu końcowego XAML do bazowego XmlWriter lub TextWriter. Zgłasza wyjątek, jeśli bieżąca pozycja strumienia węzła XAML, który jest przetwarzany, jest niezgodna z zapisywaniem obiektu końcowego. |
WriteGetObject() |
Zapisuje obiekt w przypadkach, gdy określony obiekt jest wartością domyślną lub niejawną właściwości, która jest zapisywana, zamiast być określona jako wartość obiektu w wejściowym zestawie węzłów XAML. |
WriteNamespace(NamespaceDeclaration) |
Zapisuje informacje o przestrzeni nazw do bazowego XmlWriter lub TextWriter. Może zgłosić wyjątek dla niektórych stanów; Może jednak odroczyć zapisywanie informacji o przestrzeni nazw do momentu wstawienia składnika zapisywania i strumienia węzła XAML, który jest przetwarzany, osiąga pozycję, w której można wstawić deklarację przestrzeni nazw XAML. |
WriteNode(XamlReader) |
Wykonuje przełączanie na podstawie typu węzła z czytnika XAML (NodeType) i wywołuje odpowiednią metodę |
WriteStartMember(XamlMember) |
Zapisuje węzeł członkowski początkowy XAML do bazowego XmlWriter lub TextWriter. Zgłasza wyjątek, jeśli bieżące położenie strumienia węzła XAML znajduje się w innym elemencie członkowskim lub jeśli nie znajduje się w zakresie lub stanie zapisywania, w którym można zapisać element członkowski początkowy. |
WriteStartObject(XamlType) |
Zapisuje węzeł obiektu początkowego XAML do bazowego XmlWriter lub TextWriter. Zgłasza wyjątek, jeśli bieżąca pozycja strumienia węzła XAML nie znajduje się w zakresie, w którym można zapisać obiekt początkowy, lub jeśli składnik zapisywania nie znajduje się w stanie, w którym można zapisać obiekt startowy. |
WriteValue(Object) |
Zapisuje węzeł wartości XAML do bazowego XmlWriter lub TextWriter. Zgłasza wyjątek, jeśli bieżące położenie strumienia węzła XAML jest nieprawidłowe do zapisywania wartości lub składnik zapisywania jest w stanie, w którym nie można zapisać wartości. |
Jawne implementacje interfejsu
IDisposable.Dispose() |
Zobacz Dispose(). (Odziedziczone po XamlWriter) |