XamlObjectWriter Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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 |
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 |
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 |
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) |