XamlReader.LoadAsync 方法

定义

读取 XAML 标记,并返回与指定标记的根对应的对象。

重载

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

读取指定 Stream 中的 XAML 输入,并返回相应对象树的根。

LoadAsync(Stream)

读取指定 Stream 中的 XAML 输入,并返回相应对象树的根。

LoadAsync(XmlReader)

读取指定 XmlReader 中的 XAML 输入,并返回相应对象树的根。

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

参数

stream
Stream
parserContext
ParserContext
useRestrictiveXamlReader
Boolean

返回

注解

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Load(Stream, ParserContext, Boolean)异常。

适用于

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

参数

reader
XmlReader
useRestrictiveXamlReader
Boolean

返回

注解

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Load(XmlReader, Boolean)异常。

适用于

LoadAsync(Stream, ParserContext)

读取指定 Stream 中的 XAML 输入,并返回相应对象树的根。

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

参数

stream
Stream

包含要加载的 XAML 输入的流。

parserContext
ParserContext

由分析器使用的上下文信息。

返回

已创建的对象树的根。

例外

streamnull

对同一个 XamlReader 同时执行多个加载操作。

注解

异步 XAML 加载操作最初将返回一个纯根对象的对象。 然后,XAML 分析以异步方式继续,并在根目录下填充任何子对象。 这与典型的 WPF XAML 处理行为及其与对象生存期的 WPF 概念的交互形成鲜明对比。 在典型的 (非异步) 交互中,在返回元素并将其报告为已加载之前,将填充对象的所有属性(包括所有子集合)。 该行为相当于创建树的自下而上方法,其中根对象是最后一个可用的对象。

通常,你会将返回的对象分配到应用程序的对象树中的某个位置,并知道如果整个内容作为 UI 的一部分公开,内容可能仍在填充,并可能导致增量布局更新。 因此,通常将任何异步加载的对象与 XAML 隔离或虚拟化,并使用特定于应用程序的逻辑或应用程序状态来通知 LoadCompleted 何时处理 。

为了 LoadAsync 异步加载标记,XAML 标记中的根元素必须包含 特性和值 x:SynchronousMode="Async"。 该值被视为区分大小写。 如果 XAML 标记根不包含 x:SynchronousMode="Async",则不会引发异常,并且调用将作为同步加载进行处理 (请参阅 Load(Stream, ParserContext)) 。

每个类实例 XamlReader 一次只能执行一个异步加载操作。 如果在类InvalidOperationExceptionXamlReader同一实例上尝试多个异步操作,则会引发 。

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Load(Stream, ParserContext)异常。

另请参阅

适用于

LoadAsync(Stream)

读取指定 Stream 中的 XAML 输入,并返回相应对象树的根。

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

参数

stream
Stream

包含要加载的 XAML 输入的流。

返回

已创建的对象树的根对象。

例外

streamnull

对同一个 XamlReader 的多个加载操作用时挂起。

注解

异步 XAML 加载操作最初将返回一个纯根对象的对象。 然后,XAML 分析以异步方式继续,并在根目录下填充任何子对象。 这与典型的 WPF XAML 处理行为及其与对象生存期的 WPF 概念的交互形成鲜明对比。 在典型的 (非异步) 交互中,在返回元素并将其报告为已加载之前,将填充对象的所有属性(包括所有子集合)。 该行为相当于创建树的自下而上方法,其中根对象是最后一个可用的对象。

你通常会将返回的对象分配到 WPF 应用程序的对象树中的某个位置,并知道如果整个内容作为 UI 的一部分公开,内容可能仍在填充,并可能导致增量布局更新。 因此,通常将任何异步加载的对象与 XAML 隔离或虚拟化,并使用特定于应用程序的逻辑或应用程序状态来通知 LoadCompleted 何时处理 。

为了 LoadAsync 异步加载 XAML 输入,XAML 输入中的根元素必须包含 属性和值 x:SynchronousMode="Async"。 该值被视为区分大小写。 如果 XAML 输入根不包含 x:SynchronousMode="Async",则不会引发任何异常,并且调用将作为同步加载进行处理 (请参阅 Load(Stream)) 。

每个类实例 XamlReader 一次只能执行一个异步加载操作。 如果在类InvalidOperationExceptionXamlReader同一实例上尝试多个异步操作,则会引发 。

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Load(Stream)异常。

另请参阅

适用于

LoadAsync(XmlReader)

读取指定 XmlReader 中的 XAML 输入,并返回相应对象树的根。

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

参数

reader
XmlReader

已加载/读取 XAML 输入的现有 XmlReader

返回

已创建的对象树的根。

例外

readernull

对同一个 XamlReader 同时执行多个加载操作。

注解

异步 XAML 加载操作最初将返回一个纯根对象的对象。 然后,XAML 分析以异步方式继续,并在根目录下填充任何子对象。 这与典型的 WPF XAML 处理行为及其与对象生存期的 WPF 概念的交互形成鲜明对比。 在典型的 (非异步) 交互中,在返回元素并将其报告为已加载之前,将填充对象的所有属性(包括所有子集合)。 该行为相当于创建树的自下而上方法,其中根对象是最后一个可用的对象。

你通常会将返回的对象 LoadAsync 从 分配到应用程序的对象树中的某个位置,并知道如果整个内容作为 UI 的一部分公开,内容可能仍在填充,并可能导致增量布局更新。 因此,通常将任何异步加载的对象与 XAML 隔离或虚拟化,并使用特定于应用程序的逻辑或应用程序状态来通知 LoadCompleted 何时处理 。

为了 LoadAsync 异步加载 XAML 输入,XAML 标记中的根元素必须包含 特性和值 x:SynchronousMode="Async"。 该值被视为区分大小写。 如果 XAML 标记根不包含 x:SynchronousMode="Async",则不会引发异常,并且调用将改为作为同步加载进行处理 (请参阅 Load(XmlReader)) 。

每个类实例 XamlReader 一次只能执行一个异步加载操作。 如果在类InvalidOperationExceptionXamlReader同一实例上尝试多个异步操作,则会引发 。

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Load(XmlReader)异常。

另请参阅

适用于

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

参数

stream
Stream
useRestrictiveXamlReader
Boolean

返回

注解

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Load(Stream, Boolean)异常。

适用于