Sdílet prostřednictvím


XamlObjectWriter Třída

Definice

Vytvoří graf objektů ze zdrojového datového proudu uzlu XAML.

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

Metody WriteXamlObjectWriter implementace vzoru tak, aby XamlObjectWriter používaly XamlWriter ten, který je definován metodou WriteNode . WriteNode Logika se přepíná mezi Write metodami v závislosti na typu uzlu na aktuální pozici v čtečce.

Scope

A XamlObjectWriter má koncept oboru; to znamená, XamlObjectWriter že udržuje koncepční bod odkazu v grafu výstupního objektu. U konkrétního oboru můžou být určité operace platné nebo neplatné nebo výsledkem operace bez operace. Pokud například voláte WriteStartMember direktivy zápisu pro inicializaci objektu, který již existuje jako instance, výchozí implementace vyvolá výjimku.

Možnou technikou sledování rozsahu ve vlastním XamlObjectWriter oboru je sladění akcí uzlu se zásobníkem nebo třídou rámce. Zásobník nebo rámec může sledovat nabízení a překryvné zobrazení pro každou úroveň hloubky objektového modelu, která je zadaná nebo ukončená při zápisu XamlObjectWriter grafu objektu.

Zpětná volání

Aby bylo možné podporovat přechodné a pokročilé XamlObjectWriter scénáře, mechanismus zápisu grafu objektu poskytuje vstupní body zpětného volání, ke kterým dochází, když XamlObjectWriter potvrzení nebo se chystá potvrdit určité akce. Některé zpětná volání jsou povolena v nastavení a nejsou specifické pro typ objektu nebo člen, který je zapsán; Informace o zpětném volání jsou však často k dispozici v kontextu nebo jsou v datech událostí, která se odesílají prostřednictvím zpětného volání. Následuje seznam relevantních zpětných volání:

  • Zpětné volání deklarované AfterBeginInitHandler pomocí je vyvoláno, když obor přejde na nový objekt a ve BeginInit fázi životnosti objektu pro každý vytvořený objekt.

  • Zpětné volání deklarované AfterEndInitHandler pomocí je vyvoláno, když obor přejde na nový objekt a ve EndInit fázi životnosti objektu pro každý vytvořený objekt.

  • Zpětné volání deklarované BeforePropertiesHandler pomocí je vyvoláno při spuštění oboru v objektu a nastane při prvním WriteStartMember volání tohoto oboru objektu, ale dosud potvrzen.

  • Zpětné volání, které je deklarováno AfterPropertiesHandler pomocí, je vyvoláno při spuštění oboru v objektu a nastane, když WriteEndObject je volání tohoto oboru objektu provedeno, ale dosud potvrzeno.

  • Zpětné volání, které je deklarováno XamlSetValueHandler je vyvoláno při OnSetValue volání.

Psaní klíčů slovníku

Výchozí implementace XamlObjectWriter podporuje převod typů u omezení před Dictionary<TKey,TValue> přidání obsahu slovníku do objektového grafu. Tímto způsobem může být obecný slovník za běhu klíčován objekty a může odpovídat relevantnímu obecnému Add chování a chování indexeru. Jak je však implementováno pro základ XamlObjectWriter, tato schopnost existuje pouze pro vytváření objektového grafu ze základní Dictionary<TKey,TValue> třídy, a ne pro odvozené třídy Dictionary<TKey,TValue>.

Kontroly vyřazení

Zapisovače XAML se můžou používat pro odložené operace nebo v případě, že je volání provedeno proti instanci zapisovače XAML, která byla v přechodném období odstraněna. V těchto případech můžou vyvolat ObjectDisposedException různá rozhraní APIXamlObjectWriter.

Konstruktory

Name Description
XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

Inicializuje novou instanci XamlObjectWriter třídy pomocí kontextu, který je používán a XamlReader jeho nastavení.

XamlObjectWriter(XamlSchemaContext)

Inicializuje novou instanci XamlObjectWriter třídy pomocí kontextu schématu XAML, který je používán .XamlReader

Vlastnosti

Name Description
IsDisposed

Získá, zda Dispose(Boolean) byl volána.

(Zděděno od XamlWriter)
Result

Získá poslední objekt, který byl napsán. Obvykle se volá pouze v okamžiku, kdy je datový proud uzlu na jeho konci a graf objektů je dokončený.

RootNameScope

INameScope Získá službu, která udržuje názvový rozsah XAML pro absolutní kořen uzlu zapisovače objektu XAML.

SchemaContext

Získá aktivní kontext schématu XAML.

ShouldProvideLineInfo

Získá hodnotu, která hlásí, zda řádek informační služba má poskytovat hodnoty, a proto by měla také volat metodu SetLineInfo(Int32, Int32) , pokud je relevantní.

Metody

Name Description
Clear()

Obnoví všechny možné rámce a vymaže graf objektu.

Close()

Zavře objekt zapisovače XAML.

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

Uvolní nespravované prostředky používané XamlObjectWriternástrojem a volitelně uvolní spravované prostředky.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

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

Slouží jako výchozí funkce hash.

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

Získá Type aktuální instance.

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

Vytvoří mělkou kopii aktuálního Object.

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

Vyvolá jakoukoli AfterBeginInitHandler metodu přidruženou XamlObjectWriterSettings k tomuto XamlObjectWriter.

OnAfterEndInit(Object)

Vyvolá jakoukoli AfterEndInitHandler metodu přidruženou XamlObjectWriterSettings k tomuto XamlObjectWriter.

OnAfterProperties(Object)

Vyvolá všechny AfterPropertiesHandler odkazované metody přidružené XamlObjectWriterSettings k tomuto XamlObjectWriter.

OnBeforeProperties(Object)

Vyvolá všechny BeforePropertiesHandler odkazované metody přidružené XamlObjectWriterSettings k tomuto XamlObjectWriter.

OnSetValue(Object, XamlMember, Object)

Vyvolá jakoukoli XamlSetValueHandler odkazovanou metodu, která je přidružena XamlObjectWriterSettings k tomuto zapisovači, pokud handled v XamlSetValueEventArgs událostech data nejsou true.

SetLineInfo(Int32, Int32)

Implementuje SetLineInfo(Int32, Int32) a poskytuje informace o řádcích pro výjimky.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

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

Zavře aktuální obor člena a během zavření může zapsat hodnotu oboru člena. Nový obor se stane nadřazenou oborem objektu člena.

WriteEndObject()

Zavře aktuální obor objektu v zapisovači. Nový obor objektu se stane oborem nadřazeného člena.

WriteGetObject()

Zapíše konceptuální objekt StartObject do grafu objektu, pokud je zadaný objekt výchozí nebo implicitní hodnota nadřazené vlastnosti. Implicitní hodnota pochází z informací získaných z kontextu schématu XAML a informací o záložním typu, místo aby byla zadána jako hodnota objektu ve vstupní sadě uzlů XAML.

WriteNamespace(NamespaceDeclaration)

Definuje deklaraci oboru názvů, která se vztahuje na další obor objektu nebo obor člena.

WriteNode(XamlReader)

Provádí přepínání na základě typu uzlu ze čtečky XAML (NodeType) a volá příslušnou Write metodu pro implementaci zapisovače.

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

Zapíše nový členský uzel do aktuálního oboru objektu a obor se stane novým oborem člena.

WriteStartObject(XamlType)

Zapíše uzel objektu do aktuálního oboru a nastaví obor na nový obor objektu.

WriteValue(Object)

Zapíše hodnotu do aktuálního oboru člena. Pokud je aktuální obor uvnitř kolekce, slovníku nebo objektu pole, měla by být hodnota přidána do kolekce, slovníku nebo pole.

Explicitní implementace rozhraní

Name Description
IDisposable.Dispose()

Viz Dispose().

(Zděděno od XamlWriter)

Platí pro

Viz také