XamlReader.LoadAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
读取 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
由分析器使用的上下文信息。
返回
已创建的对象树的根。
例外
stream
为 null
。
对同一个 XamlReader 同时执行多个加载操作。
注解
异步 XAML 加载操作最初将返回一个纯根对象的对象。 然后,XAML 分析以异步方式继续,并在根目录下填充任何子对象。 这与典型的 WPF XAML 处理行为及其与对象生存期的 WPF 概念的交互形成鲜明对比。 在典型的 (非异步) 交互中,在返回元素并将其报告为已加载之前,将填充对象的所有属性(包括所有子集合)。 该行为相当于创建树的自下而上方法,其中根对象是最后一个可用的对象。
通常,你会将返回的对象分配到应用程序的对象树中的某个位置,并知道如果整个内容作为 UI 的一部分公开,内容可能仍在填充,并可能导致增量布局更新。 因此,通常将任何异步加载的对象与 XAML 隔离或虚拟化,并使用特定于应用程序的逻辑或应用程序状态来通知 LoadCompleted 何时处理 。
为了 LoadAsync 异步加载标记,XAML 标记中的根元素必须包含 特性和值 x:SynchronousMode="Async"
。 该值被视为区分大小写。 如果 XAML 标记根不包含 x:SynchronousMode="Async"
,则不会引发异常,并且调用将作为同步加载进行处理 (请参阅 Load(Stream, ParserContext)) 。
每个类实例 XamlReader 一次只能执行一个异步加载操作。 如果在类InvalidOperationException的XamlReader同一实例上尝试多个异步操作,则会引发 。
此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 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 输入的流。
返回
已创建的对象树的根对象。
例外
stream
为 null
。
对同一个 XamlReader 的多个加载操作用时挂起。
注解
异步 XAML 加载操作最初将返回一个纯根对象的对象。 然后,XAML 分析以异步方式继续,并在根目录下填充任何子对象。 这与典型的 WPF XAML 处理行为及其与对象生存期的 WPF 概念的交互形成鲜明对比。 在典型的 (非异步) 交互中,在返回元素并将其报告为已加载之前,将填充对象的所有属性(包括所有子集合)。 该行为相当于创建树的自下而上方法,其中根对象是最后一个可用的对象。
你通常会将返回的对象分配到 WPF 应用程序的对象树中的某个位置,并知道如果整个内容作为 UI 的一部分公开,内容可能仍在填充,并可能导致增量布局更新。 因此,通常将任何异步加载的对象与 XAML 隔离或虚拟化,并使用特定于应用程序的逻辑或应用程序状态来通知 LoadCompleted 何时处理 。
为了 LoadAsync 异步加载 XAML 输入,XAML 输入中的根元素必须包含 属性和值 x:SynchronousMode="Async"
。 该值被视为区分大小写。 如果 XAML 输入根不包含 x:SynchronousMode="Async"
,则不会引发任何异常,并且调用将作为同步加载进行处理 (请参阅 Load(Stream)) 。
每个类实例 XamlReader 一次只能执行一个异步加载操作。 如果在类InvalidOperationException的XamlReader同一实例上尝试多个异步操作,则会引发 。
此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 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
为 null
。
对同一个 XamlReader 同时执行多个加载操作。
注解
异步 XAML 加载操作最初将返回一个纯根对象的对象。 然后,XAML 分析以异步方式继续,并在根目录下填充任何子对象。 这与典型的 WPF XAML 处理行为及其与对象生存期的 WPF 概念的交互形成鲜明对比。 在典型的 (非异步) 交互中,在返回元素并将其报告为已加载之前,将填充对象的所有属性(包括所有子集合)。 该行为相当于创建树的自下而上方法,其中根对象是最后一个可用的对象。
你通常会将返回的对象 LoadAsync 从 分配到应用程序的对象树中的某个位置,并知道如果整个内容作为 UI 的一部分公开,内容可能仍在填充,并可能导致增量布局更新。 因此,通常将任何异步加载的对象与 XAML 隔离或虚拟化,并使用特定于应用程序的逻辑或应用程序状态来通知 LoadCompleted 何时处理 。
为了 LoadAsync 异步加载 XAML 输入,XAML 标记中的根元素必须包含 特性和值 x:SynchronousMode="Async"
。 该值被视为区分大小写。 如果 XAML 标记根不包含 x:SynchronousMode="Async"
,则不会引发异常,并且调用将改为作为同步加载进行处理 (请参阅 Load(XmlReader)) 。
每个类实例 XamlReader 一次只能执行一个异步加载操作。 如果在类InvalidOperationException的XamlReader同一实例上尝试多个异步操作,则会引发 。
此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 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)异常。