Поделиться через


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).

Применяется к