XamlObjectWriter Třída

Definice

Vytvoří objektový graf 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 Write XamlObjectWriter implementace vzoru tak, aby XamlObjectWriter používaly XamlWriter ten, který je definován metodou WriteNode . WriteNode Logika se přepne mezi Write metodami v závislosti na tom, jaký typ uzlu je na aktuální pozici čtenáře.

Obor

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

Možná technika sledování oboru ve vlastním XamlObjectWriter nastavení je sladění akcí uzlů 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á, zatímco XamlObjectWriter zapisuje graf objektu.

Zpětná volání

K podpoře přechodných a pokročilých XamlObjectWriter scénářů poskytuje mechanismus zápisu grafu objektů vstupní body zpětného volání, ke kterým dochází, když XamlObjectWriter se potvrzení nebo chystá potvrdit určité akce. Některé zpětné volání jsou povoleny v nastavení a nejsou specifické pro typ objektu nebo člen, který se zapisuje; Informace o zpětném volání jsou však často dostupné 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í, které je deklarováno, AfterBeginInitHandler je vyvoláno, když obor přejde do nového objektu a ve BeginInit fázi životnosti objektu pro každý vytvořený objekt.

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

  • Zpětné volání, které je deklarováno, BeforePropertiesHandler se vyvolá při spuštění oboru v objektu a dojde k prvnímu WriteStartMember volání tohoto oboru objektu, ale ještě není potvrzeno.

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

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

Psaní klíčů slovníku

Výchozí implementace XamlObjectWriter podporuje převod typů na omezeních Dictionary<TKey,TValue> před přidání obsahu slovníku do grafu objektů. 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 Add obecnému a indexeru chování. 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 pro vyřazení

Zapisovači XAML se můžou používat pro odložené operace nebo pokud se volání provádí proti instanci zapisovacího kódu XAML, která byla v přechodném období odstraněna. V těchto případech může dojít k ObjectDisposedException různým rozhraním APIXamlObjectWriter.

Konstruktory

XamlObjectWriter(XamlSchemaContext)

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

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

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

Vlastnosti

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 případě, že 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 zapisovacího objektu XAML.

SchemaContext

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

ShouldProvideLineInfo

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

Metody

Clear()

Obnoví všechny možné snímky a vymaže graf objektů.

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čí, zda se zadaný objekt rovná aktuálnímu objektu.

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

Slouží jako výchozí funkce hash.

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

Type Získá aktuální instanci.

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

Vytvoří použádnou kopii aktuálního souboru 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 přidruženou XamlObjectWriterSettings k tomuto zapisovači, pokud handled data XamlSetValueEventArgs událostí 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 zapisovat 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 nadřazený obor člena.

WriteGetObject()

Zapíše koncept StartObject do grafu objektu, když zadaný objekt je 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 typu backingu, 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 maticového objektu, měla by být hodnota přidána do kolekce, slovníku nebo pole.

Explicitní implementace rozhraní

IDisposable.Dispose()

Viz třída Dispose().

(Zděděno od XamlWriter)

Platí pro

Viz také