XamlObjectWriter Klasse

Definition

Erstellt ein Objektdiagramm aus einem Quell-XAML-Knotenstream.

public ref class XamlObjectWriter : System::Xaml::XamlWriter, System::Xaml::IXamlLineInfoConsumer
public class XamlObjectWriter : System.Xaml.XamlWriter, System.Xaml.IXamlLineInfoConsumer
type XamlObjectWriter = class
    inherit XamlWriter
    interface IXamlLineInfoConsumer
Public Class XamlObjectWriter
Inherits XamlWriter
Implements IXamlLineInfoConsumer
Vererbung
XamlObjectWriter
Implementiert

Hinweise

Die Write Methoden der Implementierung eines XamlObjectWriter Musters, sodass die XamlObjectWriter durch die WriteNode Methode definierte Methode verwendet XamlWriter wird. WriteNode Logik wechselt zwischen den Write Methoden, je nachdem, welcher Knotentyp sich an der aktuellen Position des Lesers befindet.

Bereich

A XamlObjectWriter hat ein Konzept des Bereichs; das heißt, der XamlObjectWriter konzeptuelle Bezugspunkt in seinem Ausgabeobjektdiagramm. Für einen bestimmten Bereich können bestimmte Vorgänge gültig oder ungültig sein oder ein Ergebnis ohne Vorgang erzeugen. Wenn Sie z. B. Direktiven WriteStartMember für die Initialisierung eines Objekts schreiben, das bereits als Instanz vorhanden ist, löst die Standardimplementierung eine Ausnahme aus.

Eine mögliche Methode zum Nachverfolgen des Bereichs in einer benutzerdefinierten Benutzerdefinierten XamlObjectWriter besteht darin, die Knotenaktionen mit einer Stapel- oder Frameklasse auszurichten. Der Stapel oder Frame kann push and pop für jede Ebene der Objektmodelltiefe nachverfolgen, die eingegeben oder beendet wird, während das XamlObjectWriter Objektdiagramm geschrieben wird.

Rückrufe

Um zwischene und erweiterte XamlObjectWriter Szenarien zu unterstützen, stellt der Mechanismus zum Schreiben eines Objektdiagramms Rückrufeingabepunkte bereit, die auftreten, wenn ein XamlObjectWriter Commit ausgeführt wird oder sich um bestimmte Aktionen handelt. Einige Rückrufe werden in den Einstellungen aktiviert und sind nicht spezifisch für den Objekttyp oder das Element, das geschrieben wird; Rückrufinformationen sind jedoch häufig im Kontext verfügbar oder befinden sich in den Ereignisdaten, die über den Rückruf gesendet werden. Nachfolgend sehen Sie eine Liste der relevanten Rückrufe:

  • Der Rückruf, der durch AfterBeginInitHandler deklariert wird, wird aufgerufen, wenn der Bereich zu einem neuen Objekt wechselt und in der BeginInit Phase der Objektlebensdauer für jedes erstellte Objekt.

  • Der Rückruf, der durch AfterEndInitHandler deklariert wird, wird aufgerufen, wenn der Bereich zu einem neuen Objekt wechselt und in der EndInit Phase der Objektlebensdauer für jedes erstellte Objekt.

  • Der Rückruf, der durch BeforePropertiesHandler deklariert wird, wird aufgerufen, wenn der Bereich in einem Objekt beginnt, und tritt auf, wenn der erste WriteStartMember Aufruf dieses Objektbereichs erfolgt, aber noch nicht übernommen wird.

  • Der Rückruf, der von AfterPropertiesHandler diesem deklariert wird, wird aufgerufen, wenn der Bereich in einem Objekt beginnt, und geschieht, wenn der WriteEndObject Aufruf dieses Objektbereichs erfolgt, aber noch nicht übernommen wird.

  • Der Rückruf, der durch XamlSetValueHandler deklariert wird, wird aufgerufen, wenn OnSetValue er aufgerufen wird.

Schreiben von Wörterbuchschlüsseln

Die Standardimplementierung der Unterstützung der XamlObjectWriter Typkonvertierung für die Einschränkungen einer Dictionary<TKey,TValue> Datei, bevor der Wörterbuchinhalt dem Objektdiagramm hinzugefügt wird. Auf diese Weise kann ein generisches Wörterbuch zur Laufzeit von Objekten schlüsselt werden und mit dem relevanten generischen Add und Indexerverhalten übereinstimmen. Wie für die Basis XamlObjectWriterimplementiert, ist diese Funktion jedoch nur für die Erstellung von Objektdiagrammen aus der Basisklasse Dictionary<TKey,TValue> und nicht für abgeleitete Klassen von Dictionary<TKey,TValue>.

Sucht nach verworfenen

XAML-Autoren werden potenziell für verzögerte Vorgänge verwendet oder wenn ein Aufruf für eine XAML-Writer-Instanz ausgeführt wird, die in der Zwischenzeit verworfen wurde. In diesen Fällen können verschiedene APIs XamlObjectWriter ausgelöst ObjectDisposedException werden.

Konstruktoren

XamlObjectWriter(XamlSchemaContext)

Initialisiert eine neue Instanz der XamlObjectWriter-Klasse mit dem XAML-Schemakontext, der von einem XamlReader verwendet wird.

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

Initialisiert eine neue Instanz der XamlObjectWriter-Klasse mithilfe eines durch einen XamlReader verwendeten Kontexts und der zugehörigen Einstellungen.

Eigenschaften

IsDisposed

Ruft ab, ob die Dispose(Boolean)-Methode aufgerufen wurde.

(Geerbt von XamlWriter)
Result

Ruft das letzte Objekt ab, das geschrieben wurde. Wird normalerweise nur aufgerufen, wenn das Ende des Knotenstreams erreicht und das Objektdiagramm abgeschlossen wurde.

RootNameScope

Ruft den INameScope-Dienst ab, von dem der XAML-Namescope für den absoluten Knotenstamm des XAML-Objektwriters verwaltet wird.

SchemaContext

Ruft den aktiven XAML-Schemakontext ab.

ShouldProvideLineInfo

Ruft einen Wert ab, der angibt, ob von einem Zeileninformationsdienst Werte bereitgestellt werden sollen und ob dementsprechend die SetLineInfo(Int32, Int32)-Methode aufgerufen werden soll, wenn diese relevant ist.

Methoden

Clear()

Setzt alle möglichen Frames zurück und löscht das Objektdiagramm.

Close()

Schließt das XAML-Writerobjekt.

(Geerbt von XamlWriter)
Dispose(Boolean)

Gibt die von der XamlObjectWriter-Klasse verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnAfterBeginInit(Object)

Ruft eine beliebige AfterBeginInitHandler-Methode auf, die XamlObjectWriterSettings für diesen XamlObjectWriter zugeordnet ist.

OnAfterEndInit(Object)

Ruft eine beliebige AfterEndInitHandler-Methode auf, die XamlObjectWriterSettings für diesen XamlObjectWriter zugeordnet ist.

OnAfterProperties(Object)

Ruft eine beliebige AfterPropertiesHandler-Methode auf, auf die verwiesen wird und die XamlObjectWriterSettings für diesen XamlObjectWriter zugeordnet ist.

OnBeforeProperties(Object)

Ruft eine beliebige BeforePropertiesHandler-Methode auf, auf die verwiesen wird und die XamlObjectWriterSettings für diesen XamlObjectWriter zugeordnet ist.

OnSetValue(Object, XamlMember, Object)

Ruft eine beliebige XamlSetValueHandler-Methode auf, auf die verwiesen wird und die XamlObjectWriterSettings für diesen Writer zugeordnet ist (sofern handled in den XamlSetValueEventArgs-Ereignisdaten nicht true ist).

SetLineInfo(Int32, Int32)

Implementiert SetLineInfo(Int32, Int32) und stellt Zeileninformationen für Ausnahmen bereit.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
WriteEndMember()

Schließt den aktuellen Memberbereich und schreibt möglicherweise den Wert des Memberbereichs beim Schließen. Der neue Bereich wird der übergeordnete Objektbereich des Members.

WriteEndObject()

Schließt den aktuellen Objektbereich im Writer. Der neue Objektbereich wird der übergeordnete Bereich des Members.

WriteGetObject()

Schreibt das konzeptionelle StartObject-Objekt in das Objektdiagramm, wenn das angegebene Objekt ein Standardwert oder ein impliziter Wert der übergeordneten Eigenschaft ist. Der implizite Wert stammt aus Informationen, die aus dem XAML-Schemakontext und Sicherungstypinformationen abgerufen und nicht als Objektwert in der eingegebenen XAML-Knotengruppe angegeben werden.

WriteNamespace(NamespaceDeclaration)

Definiert eine Namespacedeklaration, die für den nächsten Objekt- oder Memberbereich übernommen wird.

WriteNode(XamlReader)

Führt eine Umschaltung auf Grundlage des Knotentyps des XAML-Readers aus (NodeType) und ruft die relevante Write-Methode für die Writerimplementierung auf.

(Geerbt von XamlWriter)
WriteStartMember(XamlMember)

Schreibt einen neuen Memberknoten in den aktuellen Objektbereich, und der Bereich wird ein neuer Memberbereich.

WriteStartObject(XamlType)

Schreibt einen Objektknoten in den aktuellen Objektbereich und legt den Bereich auf einen neuen Objektbereich fest.

WriteValue(Object)

Schreibt einen Wert in den aktuellen Memberbereich. Wenn sich der aktuelle Bereich in einer Auflistung, einem Wörterbuch oder einem Arrayobjekt befindet, sollte der Wert der Auflistung, dem Wörterbuch oder dem Array hinzugefügt werden.

Explizite Schnittstellenimplementierungen

IDisposable.Dispose()

Siehe Dispose().

(Geerbt von XamlWriter)

Gilt für

Siehe auch