Sdílet prostřednictvím


XamlReader.LoadAsync Metoda

Definice

Přečte kód XAML a vrátí objekt, který odpovídá kořenovému adresáři zadaného kódu.

Přetížení

LoadAsync(Stream, ParserContext, Boolean)
LoadAsync(XmlReader, Boolean)
LoadAsync(Stream, ParserContext)

Přečte vstup XAML v zadaném Stream a vrátí kořen odpovídajícího stromu objektů.

LoadAsync(Stream)

Přečte vstup XAML v zadaném Stream a vrátí kořen odpovídajícího stromu objektů.

LoadAsync(XmlReader)

Přečte vstup XAML v zadaném XmlReader a vrátí kořen odpovídajícího stromu objektů.

LoadAsync(Stream, Boolean)

LoadAsync(Stream, ParserContext, Boolean)

public:
 System::Object ^ LoadAsync(System::IO::Stream ^ stream, System::Windows::Markup::ParserContext ^ parserContext, bool useRestrictiveXamlReader);
public object LoadAsync (System.IO.Stream stream, System.Windows.Markup.ParserContext parserContext, bool useRestrictiveXamlReader);
member this.LoadAsync : System.IO.Stream * System.Windows.Markup.ParserContext * bool -> obj
Public Function LoadAsync (stream As Stream, parserContext As ParserContext, useRestrictiveXamlReader As Boolean) As Object

Parametry

stream
Stream
parserContext
ParserContext
useRestrictiveXamlReader
Boolean

Návraty

Poznámky

Tato metoda ukládá do úlohy, která vrací všechny výjimky nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Load(Stream, ParserContext, Boolean).

Platí pro

LoadAsync(XmlReader, Boolean)

public:
 System::Object ^ LoadAsync(System::Xml::XmlReader ^ reader, bool useRestrictiveXamlReader);
public object LoadAsync (System.Xml.XmlReader reader, bool useRestrictiveXamlReader);
member this.LoadAsync : System.Xml.XmlReader * bool -> obj
Public Function LoadAsync (reader As XmlReader, useRestrictiveXamlReader As Boolean) As Object

Parametry

reader
XmlReader
useRestrictiveXamlReader
Boolean

Návraty

Poznámky

Tato metoda ukládá do úlohy, která vrací všechny výjimky nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Load(XmlReader, Boolean).

Platí pro

LoadAsync(Stream, ParserContext)

Přečte vstup XAML v zadaném Stream a vrátí kořen odpovídajícího stromu objektů.

public:
 System::Object ^ LoadAsync(System::IO::Stream ^ stream, System::Windows::Markup::ParserContext ^ parserContext);
public object LoadAsync (System.IO.Stream stream, System.Windows.Markup.ParserContext parserContext);
member this.LoadAsync : System.IO.Stream * System.Windows.Markup.ParserContext -> obj
Public Function LoadAsync (stream As Stream, parserContext As ParserContext) As Object

Parametry

stream
Stream

Datový proud obsahující vstup XAML, který se má načíst.

parserContext
ParserContext

Kontextové informace používané analyzátorem

Návraty

Kořen vytvořeného stromu objektů.

Výjimky

stream je null.

Více operací načítání se provádí současně se stejným XamlReader.

Poznámky

Asynchronní operace načtení XAML zpočátku vrátí objekt, který je čistě kořenovým objektem. Asynchronně pokračuje analýza XAML a všechny podřízené objekty se vyplní pod kořenem. To je v kontrastu s typickým chováním zpracování WPF XAML a jeho interakcí s koncepty WPF životnosti objektů. V typické (nesynchronní) interakci jsou všechny vlastnosti objektu včetně všech podřízených kolekcí vyplněny před vrácením elementu a hlášením o jeho načtení. Toto chování odpovídá metodice zdola nahoru pro vytvoření stromu, kde kořenový objekt je posledním objektem, který bude k dispozici.

Obvykle byste vrácený objekt přiřadili k určitému umístění ve stromu objektů vaší aplikace s vědomím, že obsah se může stále zaplnit a může způsobit přírůstkové aktualizace rozložení, pokud je celý obsah zpřístupněn jako součást uživatelského rozhraní. Z tohoto důvodu je typické izolovat nebo virtualizovat všechny asynchronně načtené objekty z XAML a používat logiku nebo stav aplikace specifické pro aplikaci k upozornění, když LoadCompleted je zpracován.

Aby bylo možné LoadAsync načítat značky asynchronně, musí kořenový element v kódu XAML obsahovat atribut a hodnotu x:SynchronousMode="Async". Hodnota je považována za rozlišování velkých a malých písmen. Pokud kořenový kód XAML neobsahuje x:SynchronousMode="Async", nevyvolá se žádná výjimka a volání se zpracuje jako synchronní zatížení (viz Load(Stream, ParserContext)).

Najednou může být provedena pouze jedna asynchronní operace zatížení na instanci XamlReader třídy. Pokud se ve stejné instanci XamlReader třídy InvalidOperationException pokusí o více než jednu asynchronní operaci, vyvolá se.

Tato metoda ukládá do úlohy, která vrací všechny výjimky nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Load(Stream, ParserContext).

Viz také

Platí pro

LoadAsync(Stream)

Přečte vstup XAML v zadaném Stream a vrátí kořen odpovídajícího stromu objektů.

public:
 System::Object ^ LoadAsync(System::IO::Stream ^ stream);
public object LoadAsync (System.IO.Stream stream);
member this.LoadAsync : System.IO.Stream -> obj
Public Function LoadAsync (stream As Stream) As Object

Parametry

stream
Stream

Datový proud obsahující vstup XAML, který se má načíst.

Návraty

Objekt, který je kořenem vytvořeného stromu objektů.

Výjimky

stream je null.

Současně čeká na více operací načítání se stejnou XamlReaderoperací .

Poznámky

Asynchronní operace načtení XAML zpočátku vrátí objekt, který je čistě kořenovým objektem. Asynchronně pokračuje analýza XAML a všechny podřízené objekty se vyplní pod kořenem. To je v kontrastu s typickým chováním zpracování WPF XAML a jeho interakcí s koncepty WPF životnosti objektů. V typické (nesynchronní) interakci jsou všechny vlastnosti objektu včetně všech podřízených kolekcí vyplněny před vrácením elementu a hlášením o jeho načtení. Toto chování odpovídá metodice zdola nahoru pro vytvoření stromu, kde kořenový objekt je posledním objektem, který bude k dispozici.

Obvykle byste vrácený objekt přiřadili k určitému umístění ve stromu objektů aplikace WPF s vědomím, že obsah se může stále zaplnit a může způsobit přírůstkové aktualizace rozložení, pokud je celý obsah zpřístupněn jako součást uživatelského rozhraní. Z tohoto důvodu je typické izolovat nebo virtualizovat všechny asynchronně načtené objekty z XAML a používat logiku nebo stav aplikace specifické pro aplikaci k upozornění, když LoadCompleted je zpracován.

Aby bylo možné LoadAsync načíst vstup XAML asynchronně, kořenový element ve vstupu XAML musí obsahovat atribut a hodnotu x:SynchronousMode="Async". Hodnota je považována za rozlišování velkých a malých písmen. Pokud vstupní kořen XAML neobsahuje x:SynchronousMode="Async", nevyvolá se žádná výjimka a volání se zpracuje jako synchronní zatížení (viz Load(Stream)).

Najednou může být provedena pouze jedna asynchronní operace zatížení na instanci XamlReader třídy. Pokud se ve stejné instanci XamlReader třídy InvalidOperationException pokusí o více než jednu asynchronní operaci, vyvolá se.

Tato metoda ukládá do úlohy, která vrací všechny výjimky nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Load(Stream).

Viz také

Platí pro

LoadAsync(XmlReader)

Přečte vstup XAML v zadaném XmlReader a vrátí kořen odpovídajícího stromu objektů.

public:
 System::Object ^ LoadAsync(System::Xml::XmlReader ^ reader);
public object LoadAsync (System.Xml.XmlReader reader);
member this.LoadAsync : System.Xml.XmlReader -> obj
Public Function LoadAsync (reader As XmlReader) As Object

Parametry

reader
XmlReader

Existující XmlReader , který již načetl nebo přečetl vstup XAML.

Návraty

Kořen vytvořeného stromu objektů.

Výjimky

reader je null.

Více operací načítání se provádí současně se stejným XamlReader.

Poznámky

Asynchronní operace načtení XAML zpočátku vrátí objekt, který je čistě kořenovým objektem. Asynchronně pokračuje analýza XAML a všechny podřízené objekty se vyplní pod kořenem. To je v kontrastu s typickým chováním zpracování WPF XAML a jeho interakcí s koncepty WPF životnosti objektů. V typické (nesynchronní) interakci jsou všechny vlastnosti objektu včetně všech podřízených kolekcí vyplněny před vrácením elementu a hlášením o jeho načtení. Toto chování odpovídá metodice zdola nahoru pro vytvoření stromu, kde kořenový objekt je posledním objektem, který bude k dispozici.

Obvykle byste vrácené objekty přiřadili LoadAsync do nějakého umístění ve stromu objektů vaší aplikace s vědomím, že obsah se může stále zaplnit a může způsobit přírůstkové aktualizace rozložení, pokud je celý obsah zpřístupněn jako součást uživatelského rozhraní. Z tohoto důvodu je typické izolovat nebo virtualizovat všechny asynchronně načtené objekty z XAML a používat logiku nebo stav aplikace specifické pro aplikaci k upozornění, když LoadCompleted je zpracován.

Aby bylo možné LoadAsync načítat vstup XAML asynchronně, kořenový element ve značkách XAML musí obsahovat atribut a hodnotu x:SynchronousMode="Async". Hodnota je považována za rozlišování velkých a malých písmen. Pokud kořenový kód XAML neobsahuje x:SynchronousMode="Async", nevyvolá se žádná výjimka a volání se místo toho zpracuje jako synchronní zatížení (viz Load(XmlReader)).

Najednou může být provedena pouze jedna asynchronní operace zatížení na instanci XamlReader třídy. Pokud se ve stejné instanci XamlReader třídy InvalidOperationException pokusí o více než jednu asynchronní operaci, vyvolá se.

Tato metoda ukládá do úlohy, která vrací všechny výjimky nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Load(XmlReader).

Viz také

Platí pro

LoadAsync(Stream, Boolean)

public:
 System::Object ^ LoadAsync(System::IO::Stream ^ stream, bool useRestrictiveXamlReader);
public object LoadAsync (System.IO.Stream stream, bool useRestrictiveXamlReader);
member this.LoadAsync : System.IO.Stream * bool -> obj
Public Function LoadAsync (stream As Stream, useRestrictiveXamlReader As Boolean) As Object

Parametry

stream
Stream
useRestrictiveXamlReader
Boolean

Návraty

Poznámky

Tato metoda ukládá do úlohy, která vrací všechny výjimky nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Load(Stream, Boolean).

Platí pro