XamlObjectWriter Třída

Definice

Vytvoří graf objektu ze zdrojového datového proudu uzlu XAML.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
Dědičnost
XamlObjectWriter
Implementuje

Poznámky

Write WriteNode Metody implementují vzor, XamlObjectWriter abypoužívaly,kteréjsoudefinoványmetodou.XamlWriter XamlObjectWriterThe Write methods of XamlObjectWriter implement a pattern so that the XamlObjectWriter uses the XamlWriter that is defined by the WriteNode method. WriteNodelogické přepínače mezi Write metodami, v závislosti na tom, který typ uzlu je na aktuální pozici čtecího modulu.WriteNode logic switches between the Write methods, depending on which node type is at the current position in the reader.

ScopeScope

Má koncept oboru; to znamená XamlObjectWriter , že udržuje koncepční bod odkazu v grafu výstupních objektů. XamlObjectWriterA XamlObjectWriter has a concept of scope; that is, the XamlObjectWriter maintains a conceptual point of reference in its output object graph. Pro určitý rozsah můžou některé operace platit nebo být neplatné nebo vytvořit výsledek bez operace.For a particular scope, certain operations might be valid or invalid, or produce a no-operation result. Například pokud zavoláte WriteStartMember direktivy Write pro inicializaci objektu, který již existuje jako instance, výchozí implementace vyvolá výjimku.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.

Možnou metodou pro sledování oboru ve vlastním XamlObjectWriter je zarovnání akcí uzlu se třídou stack nebo Frame.A possible technique for tracking scope in a custom XamlObjectWriter is to align the node actions with a stack or frame class. Zásobník nebo rámec může sledovat nabízení a pop pro každou úroveň hloubky modelu objektu, která je zadána nebo ukončena při XamlObjectWriter zápisu grafu objektu.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.

Zpětná voláníCallbacks

Pro podporu pokročilých a XamlObjectWriter pokročilých scénářů mechanismus psaní objektů poskytuje vstupní body zpětného volání, ke kterým dochází XamlObjectWriter , když potvrzení nebo se chystá potvrdit určité akce.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. Některá zpětná volání jsou v nastavení povolená a nejsou specifická pro typ objektu nebo člen, který se zapisuje; informace o zpětném volání jsou však často k dispozici v kontextu nebo jsou v datech událostí, která jsou odesílána prostřednictvím zpětného volání.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. Následuje seznam relevantních zpětných volání:The following is a list of relevant callbacks:

  • Zpětné volání, které je deklarováno pomocí, AfterBeginInitHandler je vyvoláno při přechodu oboru do nového objektu a BeginInit ve fázi životnosti objektu pro každý vytvořený objekt.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.

  • Zpětné volání, které je deklarováno pomocí, AfterEndInitHandler je vyvoláno při přechodu oboru do nového objektu a EndInit ve fázi životnosti objektu pro každý vytvořený objekt.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.

  • Zpětné volání, které je deklarováno pomocí, BeforePropertiesHandler je vyvoláno při spuštění oboru v objektu a nastane, pokud je provedeno první WriteStartMember volání tohoto oboru objektu, ale ještě není potvrzeno.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.

  • Zpětné volání, které je deklarováno pomocí, AfterPropertiesHandler je vyvoláno při spuštění oboru v objektu a dojde v WriteEndObject případě, že je provedeno volání tohoto oboru objektu, ale ještě není potvrzeno.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.

  • Zpětné volání, které je deklarováno pomocí XamlSetValueHandler , je vyvoláno při OnSetValue volání metody.The callback that is declared by XamlSetValueHandler is invoked when OnSetValue is called.

Zápis klíčů slovníkuWriting Dictionary Keys

Výchozí implementace XamlObjectWriter pro podporuje převod typu v omezeních Dictionary<TKey,TValue> před přidáním obsahu slovníku do grafu objektu.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. Tímto způsobem může být obecný slovník nastaven za běhu podle objektů a může odpovídat souvisejícímu obecnému Add a chování indexeru.In this manner, a generic dictionary can be keyed at run time by objects and can match the relevant generic Add and indexer behavior. Nicméně jak je implementováno pro základní XamlObjectWriter, tato schopnost existuje pouze pro vytváření grafů objektů ze základní Dictionary<TKey,TValue> třídy, Dictionary<TKey,TValue>nikoli pro odvozené třídy.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>.

Šeky k DisposeChecks for Disposed

Zapisovače XAML jsou potenciálně použity pro odložené operace nebo v případě, že je provedeno volání proti instanci zapisovače XAML, která byla uvolněna v dočasném stavu.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. V těchto případech XamlObjectWriter mohou vyvolat ObjectDisposedException různá rozhraní API.Various APIs of XamlObjectWriter might throw ObjectDisposedException in these cases.

Konstruktory

XamlObjectWriter(XamlSchemaContext)

Inicializuje novou instanci XamlObjectWriter třídy pomocí kontextu schématu XAML, který je použit XamlReaderv.Initializes a new instance of the XamlObjectWriter class using the XAML schema context that is used by a XamlReader.

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

Inicializuje novou instanci XamlObjectWriter třídy pomocí kontextu, který je používán XamlReader pomocí a jeho nastavení.Initializes a new instance of the XamlObjectWriter class using the context that is used by a XamlReader and its settings.

Vlastnosti

IsDisposed

Získá, Dispose(Boolean) zda byla volána.Gets whether Dispose(Boolean) has been called.

(Zděděno od XamlWriter)
Result

Načte poslední napsaný objekt.Gets the last object that was written. Obvykle se volá pouze v případě, že je datový proud uzlu na konci a graf objektu je dokončen.Typically only called when the node stream is at its end and the object graph is complete.

RootNameScope

INameScope Získá službu, která udržuje namescope XAML pro kořen absolutního uzlu pro zapisovač objektů XAML.Gets the INameScope service that maintains the XAML namescope for the absolute node root of the XAML object writer.

SchemaContext

Získá aktivní kontext schématu XAML.Gets the active XAML schema context.

ShouldProvideLineInfo

Načte hodnotu, která hlásí, zda by měla služba informací o řádku poskytnout hodnoty a proto by měla volat SetLineInfo(Int32, Int32) metodu, pokud je relevantní.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.

Metody

Clear()

Obnoví všechny možné snímky a vymaže graf objektu.Resets all possible frames and clears the object graph.

Close()

Zavře objekt zapisovače XAML.Closes the XAML writer object.

(Zděděno od XamlWriter)
Dispose(Boolean)

Uvolní nespravované prostředky XamlObjectWriter, které používá, a volitelně uvolní spravované prostředky.Releases the unmanaged resources used by the XamlObjectWriter, and optionally, releases the managed resources.

Equals(Object)

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.Gets the Type of the current instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří kopii aktuálního Objectbez podstruktury.Creates a shallow copy of the current Object.

(Zděděno od Object)
OnAfterBeginInit(Object)

Vyvolá jakoukoli AfterBeginInitHandler metodu, která je XamlObjectWriterSettings pro tuto XamlObjectWriterhodnotu přidružená.Invokes any AfterBeginInitHandler method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnAfterEndInit(Object)

Vyvolá jakoukoli AfterEndInitHandler metodu, která je XamlObjectWriterSettings pro tuto XamlObjectWriterhodnotu přidružená.Invokes any AfterEndInitHandler method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnAfterProperties(Object)

Vyvolá jakoukoli AfterPropertiesHandler odkazovanou metodu, která je XamlObjectWriterSettings pro tuto XamlObjectWriterhodnotu přidružená.Invokes any AfterPropertiesHandler referenced method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnBeforeProperties(Object)

Vyvolá jakoukoli BeforePropertiesHandler odkazovanou metodu, která je XamlObjectWriterSettings pro tuto XamlObjectWriterhodnotu přidružená.Invokes any BeforePropertiesHandler referenced method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnSetValue(Object, XamlMember, Object)

Vyvolá XamlSetValueHandler jakoukoli odkazovanou metodu, která je handled XamlObjectWriterSettings přidružena k pro tento zapisovač XamlSetValueEventArgs , pokud data události nejsou true.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)

Implementuje SetLineInfo(Int32, Int32) a poskytuje informace o řádcích pro výjimky.Implements SetLineInfo(Int32, Int32) and provides line information for exceptions.

ToString()

Vrací řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)
WriteEndMember()

Zavře aktuální obor členů a při jeho zavírání může zapsat hodnotu oboru členů.Closes the current member scope, and may write the value of the member scope while it closes. Nový rozsah se stal nadřazeným oborem objektu člena.The new scope becomes the parent object scope of the member.

WriteEndObject()

Zavře aktuální rozsah objektu ve zapisovači.Closes the current object scope in the writer. Nový rozsah objektu se stal nadřazeným oborem členů.The new object scope becomes the parent member scope.

WriteGetObject()

Zapisuje koncepční StartObject do grafu objektů, pokud je zadaný objekt výchozí nebo implicitní hodnota nadřazené vlastnosti.Writes the conceptual StartObject into the object graph when the specified object is a default or implicit value of the parent property. Implicitní hodnota pochází z informací získaných z kontextu schématu XAML a informací o typu zálohování místo určení jako hodnota objektu ve vstupní sadě uzlů jazyka XAML.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)

Definuje deklaraci oboru názvů, která se vztahuje na další obor objektů nebo obor členů.Defines a namespace declaration that applies to the next object scope or member scope.

WriteNode(XamlReader)

Provádí přepínání v závislosti na typu uzlu ze čtečky XAMLNodeType() a volá příslušnou Write metodu pro implementaci zapisovače.Performs switching based on node type from the XAML reader (NodeType) and calls the relevant Write method for the writer implementation.

(Zděděno od XamlWriter)
WriteStartMember(XamlMember)

Zapíše nový členský uzel do aktuálního oboru objektu a obor se bude novým oborem členů.Writes a new member node into the current object scope, and the scope becomes a new member scope.

WriteStartObject(XamlType)

Zapíše uzel objektu do aktuálního oboru a nastaví obor na nový obor objektu.Writes an object node into the current scope, and sets the scope to a new object scope.

WriteValue(Object)

Zapíše hodnotu do aktuálního oboru členů.Writes a value to the current member scope. Pokud je aktuální obor uvnitř kolekce, slovníku nebo objektu Array, hodnota by měla být přidána do kolekce, slovníku nebo pole.If the current scope is inside a collection, dictionary, or array object, the value should be added to the collection, dictionary, or array.

Explicitní implementace rozhraní

IDisposable.Dispose()

Viz Dispose().See Dispose().

(Zděděno od XamlWriter)

Platí pro

Viz také