XamlObjectWriter.WriteGetObject Metoda
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í.
Zapíše koncept 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 z informací o záložním typu, místo aby byla zadána jako hodnota objektu ve vstupní sadě uzlů XAML.
public:
override void WriteGetObject();
public override void WriteGetObject ();
override this.WriteGetObject : unit -> unit
Public Overrides Sub WriteGetObject ()
Poznámky
Rozdíl mezi psaním pomocí WriteGetObject a psaním pomocí WriteStartObject je vidět ve výsledném grafu objektů. WriteGetObject nekonstruuje instanci typu, protože WriteGetObject rozhraní API nemá žádné informace, které by informovat graf objektu o tom, co se má vytvořit. Místo toho byl objekt vytvořen při inicializaci nadřazené vlastnosti; takže ho XamlObjectWriter nemusí vytvářet. Naproti tomu určuje, WriteStartObject že instance tohoto typu by měla být vytvořena a vložena do grafu objektů.
Pokud považujete stream uzlů XAML za řadu rámců, WriteGetObject je vyvážená WriteEndObject voláním . Proto by se počet WriteGetObject volání plus WriteStartObject měl rovnat počtu WriteEndObject volání v rámci úplného vyhodnocení zápisu objektu datového proudu uzlů XAML.
Koncepční StartObject
pozice implicitního objektu v grafu objektů je nezbytná, protože i když samotná hodnota objektu je implicitní výchozí, tento objekt může mít stále členy, které je třeba zapsat na základě datového proudu uzlu XAML. Typickým scénářem, kdy k tomu dochází, je zápis XamlObjectWriter členských uzlů pro vlastnost kolekce a inicializace kolekce je implicitní vytvoření objektu, který vlastní vlastnost kolekce.