XamlObjectWriter Klasse

Definition

Erstellt ein Objektdiagramm aus einem Quell-XAML-Knotenstream.Creates an object graph from a source XAML node stream.

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

Mit Write den Methoden XamlObjectWriter von wird XamlObjectWriter ein Muster implementiert, XamlWriter sodass von das verwendet wird, das WriteNode von der-Methode definiert wird.The Write methods of XamlObjectWriter implement a pattern so that the XamlObjectWriter uses the XamlWriter that is defined by the WriteNode method. WriteNodedie Logik wechselt zwischen Write den Methoden, je nachdem, welcher Knotentyp sich an der aktuellen Position des Readers befindet.WriteNode logic switches between the Write methods, depending on which node type is at the current position in the reader.

BereichScope

Ein XamlObjectWriter weist ein Konzept des Bereichs auf, d. h XamlObjectWriter ., der verwaltet einen konzeptionellen Verweis Punkt in seinem Ausgabe Objekt Diagramm.A XamlObjectWriter has a concept of scope; that is, the XamlObjectWriter maintains a conceptual point of reference in its output object graph. Bestimmte Vorgänge können für einen bestimmten Bereich gültig oder ungültig sein oder ein Ergebnis ohne Vorgang verursachen.For a particular scope, certain operations might be valid or invalid, or produce a no-operation result. Wenn Sie z. b. WriteStartMember zum Schreiben von Direktiven für die Initialisierung eines Objekts, das bereits als-Instanz vorhanden ist, aufruft, wird von der Standard Implementierung eine Ausnahme ausgelöst.For example, if you call WriteStartMember to write directives for initialization on an object that already exists as an instance, the default implementation throws an exception.

Eine Möglichkeit zum Nachverfolgen des Bereichs in einem XamlObjectWriter benutzerdefinierten ist das Ausrichten der Knoten Aktionen mit einer Stapel-oder Frame Klasse.A possible technique for tracking scope in a custom XamlObjectWriter is to align the node actions with a stack or frame class. Der Stapel oder Frame kann Push und Pop für jede Ebene der Objektmodell Tiefe nachverfolgen, die eingegeben oder beendet wird, während XamlObjectWriter das Objekt Diagramm schreibt.The stack or frame can keep track of push and pop for each level of object-model depth that is entered or exited while the XamlObjectWriter writes the object graph.

RückrufeCallbacks

Zur Unterstützung von zwischen XamlObjectWriter -und erweiterten Szenarien bietet der Mechanismus zum Schreiben eines Objekt Diagramms Rückruf Einstiegspunkte, XamlObjectWriter die auftreten, wenn ein Commit oder ein Commit für bestimmte Aktionen ausgeführt wird.To support intermediate and advanced XamlObjectWriter scenarios, the mechanism of writing an object graph provides callback entry points that occur when a XamlObjectWriter commits or is about to commit certain actions. Einige Rückrufe sind in den Einstellungen aktiviert und nicht spezifisch für den Objekttyp oder den Member, der geschrieben wird. Rückruf Informationen sind jedoch häufig im Kontext verfügbar oder befinden sich in den Ereignisdaten, die durch den Rückruf gesendet werden.Some callbacks are enabled in the settings and are not specific to the object type or the member being written; however, callback information is often available in context or is in the event data that is sent through the callback. Im folgenden finden Sie eine Liste relevanter Rückrufe:The following is a list of relevant callbacks:

  • Der Rückruf, der von AfterBeginInitHandler deklariert wird, wird aufgerufen, wenn der Bereich in ein neues-Objekt und in der BeginInit Phase der Objekt Lebensdauer für jedes erstellte Objekt wechselt.The callback that is declared by AfterBeginInitHandler is invoked when the scope goes to a new object and at the BeginInit phase of object lifetime for each created object.

  • Der Rückruf, der von AfterEndInitHandler deklariert wird, wird aufgerufen, wenn der Bereich in ein neues-Objekt und in der EndInit Phase der Objekt Lebensdauer für jedes erstellte Objekt wechselt.The callback that is declared by AfterEndInitHandler is invoked when the scope goes to a new object and at the EndInit phase of object lifetime for each created object.

  • Der Rückruf, der von BeforePropertiesHandler deklariert wird, wird aufgerufen, wenn der Bereich in einem-Objekt beginnt, und tritt auf, wenn der erste WriteStartMember Aufruf dieses Objekt Bereichs durchgeführt wird, für den jedoch noch kein Commit ausgeführt wurde.The callback that is declared by BeforePropertiesHandler is invoked when the scope starts in an object, and occurs when the first WriteStartMember call to that object scope is made but not yet committed.

  • Der Rückruf, der von AfterPropertiesHandler deklariert wird, wird aufgerufen, wenn der Bereich in einem-Objekt beginnt. Dies geschieht, wenn der WriteEndObject Aufruf dieses Objekt Bereichs erfolgt, aber noch kein Commit ausgeführt wurde.The callback that is declared by AfterPropertiesHandler is invoked when the scope starts in an object, and happens when the WriteEndObject call to that object scope is made but not yet committed.

  • Der Rückruf, der von XamlSetValueHandler deklariert wird, wird aufgerufen, wenn OnSetValue aufgerufen wird.The callback that is declared by XamlSetValueHandler is invoked when OnSetValue is called.

Schreiben von Wörterbuch SchlüsselnWriting Dictionary Keys

Die Standard Implementierung von XamlObjectWriter unterstützt die Typkonvertierung für die Einschränkungen Dictionary<TKey,TValue> von, bevor der Inhalt des Wörterbuchs dem Objekt Diagramm hinzugefügt wird.The default implementation of XamlObjectWriter supports type conversion on the constraints of a Dictionary<TKey,TValue> before the dictionary contents are added to the object graph. Auf diese Weise kann ein generisches Wörterbuch zur Laufzeit von Objekten verschlüsselt werden und mit dem relevanten generischen Add und Indexer-Verhalten verglichen werden.In this manner, a generic dictionary can be keyed at run time by objects and can match the relevant generic Add and indexer behavior. Diese Funktion ist jedoch für die Basis XamlObjectWriterKlasse nur für die Objekt Diagramm Erstellung aus der Basis Dictionary<TKey,TValue> Klasse und nicht für abgeleitete Klassen von Dictionary<TKey,TValue>vorhanden.However, as implemented for the base XamlObjectWriter, this capability exists only for object graph creation from the base Dictionary<TKey,TValue> class and not for derived classes of Dictionary<TKey,TValue>.

Prüft auf "verworfen"Checks for Disposed

XAML-Writer werden potenziell für verzögerte Vorgänge verwendet, oder es wird ein-Rückruf für eine XAML-Writer-Instanz durchgeführt, die in der Zwischenzeit verworfen wurde.XAML writers are potentially used for deferred operations or where a call is made against a XAML writer instance that has been disposed in the interim. ObjectDisposedException In diesen Fällen XamlObjectWriter können verschiedene APIs von ausgelöst werden.Various APIs of XamlObjectWriter might throw ObjectDisposedException in these cases.

Konstruktoren

XamlObjectWriter(XamlSchemaContext)

Initialisiert eine neue Instanz der XamlObjectWriter-Klasse mit dem XAML-Schemakontext, der von einem XamlReader verwendet wird.Initializes a new instance of the XamlObjectWriter class using the XAML schema context that is used by a XamlReader.

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

Initialisiert eine neue Instanz der XamlObjectWriter-Klasse mithilfe eines durch einen XamlReader verwendeten Kontexts und der zugehörigen Einstellungen.Initializes a new instance of the XamlObjectWriter class using the context that is used by a XamlReader and its settings.

Eigenschaften

IsDisposed

Ruft ab, ob die Dispose(Boolean)-Methode aufgerufen wurde.Gets whether Dispose(Boolean) has been called.

(Geerbt von XamlWriter)
Result

Ruft das letzte Objekt ab, das geschrieben wurde.Gets the last object that was written. Wird normalerweise nur aufgerufen, wenn das Ende des Knotenstreams erreicht und das Objektdiagramm abgeschlossen wurde.Typically only called when the node stream is at its end and the object graph is complete.

RootNameScope

Ruft den INameScope-Dienst ab, von dem der XAML-Namescope für den absoluten Knotenstamm des XAML-Objektwriters verwaltet wird.Gets the INameScope service that maintains the XAML namescope for the absolute node root of the XAML object writer.

SchemaContext

Ruft den aktiven XAML-Schemakontext ab.Gets the active XAML schema context.

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.Gets a value that reports whether a line information service should provide values and therefore, should also call the SetLineInfo(Int32, Int32) method when it is relevant.

Methoden

Clear()

Setzt alle möglichen Frames zurück und löscht das Objektdiagramm.Resets all possible frames and clears the object graph.

Close()

Schließt das XAML-Writerobjekt.Closes the XAML writer object.

(Geerbt von XamlWriter)
Dispose(Boolean)

Gibt die von der XamlObjectWriter-Klasse verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.Releases the unmanaged resources used by the XamlObjectWriter, and optionally, releases the managed resources.

Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
OnAfterBeginInit(Object)

Ruft eine beliebige AfterBeginInitHandler-Methode auf, die XamlObjectWriterSettings für diesen XamlObjectWriter zugeordnet ist.Invokes any AfterBeginInitHandler method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnAfterEndInit(Object)

Ruft eine beliebige AfterEndInitHandler-Methode auf, die XamlObjectWriterSettings für diesen XamlObjectWriter zugeordnet ist.Invokes any AfterEndInitHandler method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnAfterProperties(Object)

Ruft eine beliebige AfterPropertiesHandler-Methode auf, auf die verwiesen wird und die XamlObjectWriterSettings für diesen XamlObjectWriter zugeordnet ist.Invokes any AfterPropertiesHandler referenced method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnBeforeProperties(Object)

Ruft eine beliebige BeforePropertiesHandler-Methode auf, auf die verwiesen wird und die XamlObjectWriterSettings für diesen XamlObjectWriter zugeordnet ist.Invokes any BeforePropertiesHandler referenced method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

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).Invokes any XamlSetValueHandler referenced method that is associated with XamlObjectWriterSettings for this writer, as long as handled in XamlSetValueEventArgs event data is not true.

SetLineInfo(Int32, Int32)

Implementiert SetLineInfo(Int32, Int32) und stellt Zeileninformationen für Ausnahmen bereit.Implements SetLineInfo(Int32, Int32) and provides line information for exceptions.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)
WriteEndMember()

Schließt den aktuellen Memberbereich und schreibt möglicherweise den Wert des Memberbereichs beim Schließen.Closes the current member scope, and may write the value of the member scope while it closes. Der neue Bereich wird der übergeordnete Objektbereich des Members.The new scope becomes the parent object scope of the member.

WriteEndObject()

Schließt den aktuellen Objektbereich im Writer.Closes the current object scope in the writer. Der neue Objektbereich wird der übergeordnete Bereich des Members.The new object scope becomes the parent member scope.

WriteGetObject()

Schreibt das konzeptionelle StartObject-Objekt in das Objektdiagramm, wenn das angegebene Objekt ein Standardwert oder ein impliziter Wert der übergeordneten Eigenschaft ist.Writes the conceptual StartObject into the object graph when the specified object is a default or implicit value of the parent property. 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.The implicit value comes from information that is obtained from the XAML schema context and backing type information, instead of being specified as an object value in the input XAML node set.

WriteNamespace(NamespaceDeclaration)

Definiert eine Namespacedeklaration, die für den nächsten Objekt- oder Memberbereich übernommen wird.Defines a namespace declaration that applies to the next object scope or member scope.

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.Performs switching based on node type from the XAML reader (NodeType) and calls the relevant Write method for the writer implementation.

(Geerbt von XamlWriter)
WriteStartMember(XamlMember)

Schreibt einen neuen Memberknoten in den aktuellen Objektbereich, und der Bereich wird ein neuer Memberbereich.Writes a new member node into the current object scope, and the scope becomes a new member scope.

WriteStartObject(XamlType)

Schreibt einen Objektknoten in den aktuellen Objektbereich und legt den Bereich auf einen neuen Objektbereich fest.Writes an object node into the current scope, and sets the scope to a new object scope.

WriteValue(Object)

Schreibt einen Wert in den aktuellen Memberbereich.Writes a value to the current member scope. 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.If the current scope is inside a collection, dictionary, or array object, the value should be added to the collection, dictionary, or array.

Explizite Schnittstellenimplementierungen

IDisposable.Dispose()

Siehe Dispose().See Dispose().

(Geerbt von XamlWriter)

Gilt für:

Siehe auch