XamlObjectWriter Classe

Definizione

Crea un oggetto grafico da un flusso del nodo XAML di origine.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
Ereditarietà
XamlObjectWriter
Implementazioni

Commenti

I Write metodi di XamlObjectWriter implementano XamlObjectWriter un modello in modo che usi XamlWriter l'oggetto definito dal WriteNode metodo.The Write methods of XamlObjectWriter implement a pattern so that the XamlObjectWriter uses the XamlWriter that is defined by the WriteNode method. WriteNodepassa alla logica tra Write i metodi, a seconda del tipo di nodo in corrispondenza della posizione corrente del lettore.WriteNode logic switches between the Write methods, depending on which node type is at the current position in the reader.

AmbitoScope

Un XamlObjectWriter oggetto ha un concetto di ambito, ovvero XamlObjectWriter mantiene un punto concettuale di riferimento nell'oggetto grafico di output.A XamlObjectWriter has a concept of scope; that is, the XamlObjectWriter maintains a conceptual point of reference in its output object graph. Per un ambito specifico, alcune operazioni potrebbero essere valide o non valide o produrre un risultato senza operazioni.For a particular scope, certain operations might be valid or invalid, or produce a no-operation result. Se, ad esempio, si WriteStartMember chiama per scrivere direttive per l'inizializzazione su un oggetto già esistente come istanza, l'implementazione predefinita genera un'eccezione.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.

Una possibile tecnica per tenere traccia dell'ambito in XamlObjectWriter un oggetto personalizzato consiste nell'allineare le azioni del nodo a una classe stack o frame.A possible technique for tracking scope in a custom XamlObjectWriter is to align the node actions with a stack or frame class. Lo stack o il frame può tenere traccia delle operazioni push e pop per ogni livello di profondità del modello a oggetti immesso o terminato mentre XamlObjectWriter scrive l'oggetto grafico.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.

CallbackCallbacks

Per supportare scenari intermedi e XamlObjectWriter avanzati, il meccanismo di scrittura di un oggetto grafico fornisce punti di ingresso di callback che XamlObjectWriter si verificano quando un commit o sta per eseguire il commit di determinate azioni.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. Alcuni callback sono abilitati nelle impostazioni e non sono specifici del tipo di oggetto o del membro scritto; Tuttavia, le informazioni di callback spesso sono disponibili nel contesto o nei dati degli eventi inviati tramite il callback.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. Di seguito è riportato un elenco di callback pertinenti:The following is a list of relevant callbacks:

  • Il callback dichiarato da AfterBeginInitHandler viene richiamato quando l'ambito passa a un nuovo oggetto e BeginInit alla fase della durata dell'oggetto per ogni oggetto creato.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.

  • Il callback dichiarato da AfterEndInitHandler viene richiamato quando l'ambito passa a un nuovo oggetto e EndInit alla fase della durata dell'oggetto per ogni oggetto creato.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.

  • Il callback dichiarato da BeforePropertiesHandler viene richiamato quando l'ambito viene avviato in un oggetto e si verifica quando viene eseguita la prima WriteStartMember chiamata a tale ambito dell'oggetto, ma non ne è stato ancora eseguito il commit.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.

  • Il callback dichiarato da AfterPropertiesHandler viene richiamato quando l'ambito viene avviato in un oggetto e si verifica quando viene eseguita la chiamata a tale ambito dell' WriteEndObject oggetto, ma non ne è stato ancora eseguito il commit.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.

  • Il callback dichiarato da XamlSetValueHandler viene richiamato quando OnSetValue viene chiamato il metodo.The callback that is declared by XamlSetValueHandler is invoked when OnSetValue is called.

Scrittura di chiavi del dizionarioWriting Dictionary Keys

L'implementazione predefinita di XamlObjectWriter supporta la conversione dei tipi sui vincoli Dictionary<TKey,TValue> di prima che il contenuto del dizionario venga aggiunto all'oggetto grafico.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. In questo modo, un dizionario generico può essere codificato in fase di esecuzione dagli oggetti e può corrispondere al Add comportamento generico e indicizzatore pertinente.In this manner, a generic dictionary can be keyed at run time by objects and can match the relevant generic Add and indexer behavior. Tuttavia, come implementato per la base XamlObjectWriter, questa funzionalità esiste solo per la creazione di un oggetto grafico Dictionary<TKey,TValue> dalla classe base e non per le Dictionary<TKey,TValue>classi derivate di.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>.

Verifica se è stato eliminatoChecks for Disposed

I writer XAML vengono potenzialmente utilizzati per le operazioni posticipate o quando viene effettuata una chiamata a un'istanza del writer XAML eliminata nel frattempo.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. In questi casi XamlObjectWriter , è ObjectDisposedException possibile che vengano generate varie API di.Various APIs of XamlObjectWriter might throw ObjectDisposedException in these cases.

Costruttori

XamlObjectWriter(XamlSchemaContext)

Inizializza una nuova istanza della classe XamlObjectWriter usando il contesto dello schema XAML usato da un oggetto XamlReader.Initializes a new instance of the XamlObjectWriter class using the XAML schema context that is used by a XamlReader.

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

Inizializza una nuova istanza della classe XamlObjectWriter utilizzando il contesto che è utilizzato da un oggetto XamlReader e le relative impostazioni.Initializes a new instance of the XamlObjectWriter class using the context that is used by a XamlReader and its settings.

Proprietà

IsDisposed

Ottiene un valore che indica se Dispose(Boolean) è stato chiamato.Gets whether Dispose(Boolean) has been called.

(Ereditato da XamlWriter)
Result

Ottiene l'ultimo oggetto scritto.Gets the last object that was written. In genere viene chiamato solo quando il flusso del nodo è alla fine e l'oggetto grafico è stato completato.Typically only called when the node stream is at its end and the object graph is complete.

RootNameScope

Ottiene il servizio INameScope che gestisce il NameScope XAML per la radice del nodo corrente del writer di oggetti XAML.Gets the INameScope service that maintains the XAML namescope for the absolute node root of the XAML object writer.

SchemaContext

Ottiene il contesto dello schema XAML attivo.Gets the active XAML schema context.

ShouldProvideLineInfo

Ottiene un valore che segnala se un servizio di informazioni sulla riga deve fornire i valori e di conseguenza chiamare anche il metodo SetLineInfo(Int32, Int32), quando necessario.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.

Metodi

Clear()

Reimposta tutti i possibili frame e cancella l'oggetto grafico.Resets all possible frames and clears the object graph.

Close()

Chiude l'oggetto writer XAML.Closes the XAML writer object.

(Ereditato da XamlWriter)
Dispose(Boolean)

Rilascia le risorse non gestite utilizzate dall'oggetto XamlObjectWriter e facoltativamente rilascia le risorse gestite.Releases the unmanaged resources used by the XamlObjectWriter, and optionally, releases the managed resources.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
OnAfterBeginInit(Object)

Richiama qualsiasi metodo AfterBeginInitHandler associato all'oggetto XamlObjectWriterSettings per XamlObjectWriter.Invokes any AfterBeginInitHandler method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnAfterEndInit(Object)

Richiama qualsiasi metodo AfterEndInitHandler associato all'oggetto XamlObjectWriterSettings per XamlObjectWriter.Invokes any AfterEndInitHandler method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnAfterProperties(Object)

Richiama qualsiasi metodo AfterPropertiesHandler a cui viene fatto riferimento che è associato all'oggetto XamlObjectWriterSettings per XamlObjectWriter.Invokes any AfterPropertiesHandler referenced method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnBeforeProperties(Object)

Richiama qualsiasi metodo BeforePropertiesHandler a cui viene fatto riferimento che è associato all'oggetto XamlObjectWriterSettings per XamlObjectWriter.Invokes any BeforePropertiesHandler referenced method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnSetValue(Object, XamlMember, Object)

Richiama qualsiasi metodo XamlSetValueHandler a cui viene fatto riferimento che è associato all'oggetto XamlObjectWriterSettings per questo writer, a condizione che handled nei dati dell'evento XamlSetValueEventArgs non sia 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)

Implementa SetLineInfo(Int32, Int32) e fornisce le informazioni sulla riga per le eccezioni.Implements SetLineInfo(Int32, Int32) and provides line information for exceptions.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)
WriteEndMember()

Chiude l'ambito del membro corrente e può scrivere il valore dell'ambito del membro mentre viene chiuso.Closes the current member scope, and may write the value of the member scope while it closes. Il nuovo ambito diventa l'ambito dell'oggetto padre del membro.The new scope becomes the parent object scope of the member.

WriteEndObject()

Chiude l'ambito dell'oggetto corrente nel writer.Closes the current object scope in the writer. Il nuovo ambito dell'oggetto diventa l'ambito del membro padre.The new object scope becomes the parent member scope.

WriteGetObject()

Scrive l'oggetto StartObject concettuale nell'oggetto grafico quando l'oggetto specificato è un valore predefinito o implicito della proprietà padre.Writes the conceptual StartObject into the object graph when the specified object is a default or implicit value of the parent property. Il valore implicito viene da informazioni ottenute dal contesto dello schema XAML e da informazioni sul tipo di supporto, anziché essere specificato come valore dell'oggetto nel set di nodi XAML di input.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)

Definisce una dichiarazione dello spazio dei nomi che si applica all'ambito dell'oggetto o all'ambito del membro successivo.Defines a namespace declaration that applies to the next object scope or member scope.

WriteNode(XamlReader)

Esegue il passaggio in base al tipo di nodo dal reader XAML (NodeType) e chiama il metodo Write pertinente per l'implementazione del writer.Performs switching based on node type from the XAML reader (NodeType) and calls the relevant Write method for the writer implementation.

(Ereditato da XamlWriter)
WriteStartMember(XamlMember)

Scrive un nuovo nodo membro nell'ambito dell'oggetto corrente e l'ambito diventa un nuovo ambito del membro.Writes a new member node into the current object scope, and the scope becomes a new member scope.

WriteStartObject(XamlType)

Scrive un nodo oggetto nell'ambito corrente e imposta l'ambito su un nuovo ambito dell'oggetto.Writes an object node into the current scope, and sets the scope to a new object scope.

WriteValue(Object)

Scrive un valore nell'ambito del membro corrente.Writes a value to the current member scope. Se l'ambito corrente è all'interno di un oggetto insieme, dizionario o matrice, il valore deve essere aggiunto nell'insieme, nel dizionario o nella matrice.If the current scope is inside a collection, dictionary, or array object, the value should be added to the collection, dictionary, or array.

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose()

Vedere Dispose().See Dispose().

(Ereditato da XamlWriter)

Si applica a

Vedi anche