Udostępnij za pośrednictwem


XamlXmlWriter Klasa

Definicja

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
XamlXmlWriter

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 WriteXamlWriter. 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ę Flush bazowego XmlWriter lub TextWriter, która zapisuje wszystkie elementy aktualnie w buforze, a następnie zamyka składnik zapisywania.

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ę Write implementacji modułu zapisywania.

(Odziedziczone po XamlWriter)
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)

Dotyczy

Zobacz też