XamlReader.LoadAsync Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Считывает разметку XAML и возвращает объект, соответствующий корню указанной разметки.
Перегрузки
LoadAsync(Stream, ParserContext, Boolean) | |
LoadAsync(XmlReader, Boolean) | |
LoadAsync(Stream, ParserContext) |
Считывает входные данные XAML в указанном классе Stream и возвращает корневой объект соответствующего дерева объектов. |
LoadAsync(Stream) |
Считывает входные данные XAML в указанном классе Stream и возвращает корневой объект соответствующего дерева объектов. |
LoadAsync(XmlReader) |
Считывает входные данные XAML в указанном классе XmlReader и возвращает корневой объект соответствующего дерева объектов. |
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)
Считывает входные данные XAML в указанном классе Stream и возвращает корневой объект соответствующего дерева объектов.
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 продолжается, и все дочерние объекты заполняются под корнем. Это отличается от типичного поведения обработки XAML WPF и его взаимодействия с концепциями времени существования объекта WPF. При типичном (неасинхронном) взаимодействии все свойства объекта, включая все дочерние коллекции, заполняются перед возвратом элемента и сообщением о его загрузке. Это поведение приравнивается к методологии снизу вверх для создания дерева, где корневой объект является последним доступным объектом.
Как правило, возвращаемый объект назначается определенному расположению в дереве объектов приложения, зная, что содержимое по-прежнему заполняется и может привести к добавочным обновлениям макета, если все содержимое предоставляется как часть пользовательского интерфейса. По этой причине обычно выполняется изоляция или виртуализация асинхронно загруженных объектов из XAML, а также использование логики или состояния приложения для уведомления об LoadCompleted обработке.
Чтобы LoadAsync асинхронно загружать разметку, корневой элемент в разметке XAML должен содержать атрибут и значение x:SynchronousMode="Async"
. Значение обрабатывается как с учетом регистра. Если корень разметки XAML не содержит x:SynchronousMode="Async"
, исключение не создается, и вызов обрабатывается как синхронная загрузка (см. ).Load(Stream, ParserContext)
Одновременно может выполняться только одна асинхронная операция загрузки для каждого экземпляра XamlReader класса . При попытке выполнить несколько асинхронных операций в одном экземпляре XamlReader класса InvalidOperationException возникает исключение .
Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые Load(Stream, ParserContext).
См. также раздел
Применяется к
LoadAsync(Stream)
Считывает входные данные XAML в указанном классе Stream и возвращает корневой объект соответствующего дерева объектов.
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 продолжается, и все дочерние объекты заполняются под корнем. Это отличается от типичного поведения обработки XAML WPF и его взаимодействия с концепциями времени существования объекта WPF. При типичном (неасинхронном) взаимодействии все свойства объекта, включая все дочерние коллекции, заполняются перед возвратом элемента и сообщением о его загрузке. Это поведение приравнивается к методологии снизу вверх для создания дерева, где корневой объект является последним доступным объектом.
Как правило, возвращаемый объект назначается определенному расположению в дереве объектов приложения WPF, зная, что содержимое может по-прежнему заполняться и может привести к добавочным обновлениям макета, если все содержимое предоставляется как часть пользовательского интерфейса. По этой причине обычно выполняется изоляция или виртуализация асинхронно загруженных объектов из XAML, а также использование логики или состояния приложения для уведомления об LoadCompleted обработке.
Чтобы LoadAsync асинхронно загружать входные данные XAML, корневой элемент во входных данных XAML должен содержать атрибут и значение x:SynchronousMode="Async"
. Значение обрабатывается как с учетом регистра. Если входной корень XAML не содержит x:SynchronousMode="Async"
, исключение не создается, и вызов обрабатывается как синхронная загрузка (см. ).Load(Stream)
Одновременно может выполняться только одна асинхронная операция загрузки для каждого экземпляра XamlReader класса . При попытке выполнить несколько асинхронных операций в одном экземпляре XamlReader класса InvalidOperationException возникает исключение .
Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые Load(Stream).
См. также раздел
Применяется к
LoadAsync(XmlReader)
Считывает входные данные XAML в указанном классе XmlReader и возвращает корневой объект соответствующего дерева объектов.
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
Существующий XmlReader объект , который уже загрузил или прочитал входные данные XAML.
Возвращаемое значение
Корневой объект созданного дерева объектов.
Исключения
reader
имеет значение null
.
Несколько операций загрузки параллельно выполняется с одним XamlReader.
Комментарии
Асинхронная операция загрузки XAML изначально возвращает объект, который является исключительно корневым объектом. Асинхронно синтаксический анализ XAML продолжается, и все дочерние объекты заполняются под корнем. Это отличается от типичного поведения обработки XAML WPF и его взаимодействия с концепциями времени существования объекта WPF. При типичном (неасинхронном) взаимодействии все свойства объекта, включая все дочерние коллекции, заполняются перед возвратом элемента и сообщением о его загрузке. Это поведение приравнивается к методологии снизу вверх для создания дерева, где корневой объект является последним доступным объектом.
Как правило, возвращаемый объект из LoadAsync назначается в некоторое расположение в дереве объектов приложения, зная, что содержимое может по-прежнему заполняться и может привести к добавочным обновлениям макета, если все содержимое предоставляется как часть пользовательского интерфейса. По этой причине обычно выполняется изоляция или виртуализация асинхронно загруженных объектов из XAML, а также использование логики или состояния приложения для уведомления об LoadCompleted обработке.
Чтобы LoadAsync асинхронно загружать входные данные XAML, корневой элемент в разметке XAML должен содержать атрибут и значение x:SynchronousMode="Async"
. Значение обрабатывается как с учетом регистра. Если корень разметки XAML не содержит x:SynchronousMode="Async"
, исключение не создается, а вызов обрабатывается как синхронная загрузка (см. ).Load(XmlReader)
Одновременно может выполняться только одна асинхронная операция загрузки для каждого экземпляра XamlReader класса . При попытке выполнить несколько асинхронных операций в одном экземпляре XamlReader класса InvalidOperationException возникает исключение .
Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как 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).