Компиляция XAML
Пользовательский интерфейс приложений .NET (.NET MAUI) компилируется непосредственно на промежуточный язык (IL) с компилятором XAML (XAMLC). Компиляция XAML предлагает ряд преимуществ:
- Он выполняет проверка компиляции XAML, уведомляя вас об ошибках.
- Он сокращает часть времени загрузки и создания элементов XAML.
- Он позволяет сократить размер файла окончательной сборки, так как больше не добавляет XAML-файлы.
Компиляция XAML включена по умолчанию в приложениях .NET MAUI. Для приложений, созданных с помощью конфигурации отладки, компиляция XAML обеспечивает проверку времени компиляции XAML, но не преобразует XAML в IL в сборке. Вместо этого ФАЙЛЫ XAML включаются в качестве внедренных ресурсов в пакет приложения и оцениваются во время выполнения. Для приложений, созданных с помощью конфигурации выпуска, компиляция XAML обеспечивает проверку времени компиляции XAML и преобразует XAML в IL, записанный в сборку. Однако поведение компиляции XAML можно переопределить в обеих конфигурациях с классом XamlCompilationAttribute .
Важно!
Скомпилированные привязки можно включить для повышения производительности привязки данных в приложениях .NET MAUI. Дополнительные сведения см. в статье Скомпилированные привязки.
Отключение компиляции XAML
Компиляция XAML может быть отключена путем передачи XamlCompilationOptions.Skip
в XamlCompilationAttribute:
[assembly: XamlCompilation(XamlCompilationOptions.Skip)]
В этом примере компиляция XAML отключена в сборке, а ошибки XAML передаются во время выполнения, а не во время компиляции.
Компиляция XAML также может быть отключена на уровне типа:
[XamlCompilation (XamlCompilationOptions.Skip)]
public partial class MyPage : ContentPage
{
...
}
В этом примере компиляция XAML отключена только для MyPage
класса.
Предупреждение
Отключение компиляции XAML не рекомендуется, так как XAML затем анализируется и интерпретируется во время выполнения, что снижает производительность приложения.
Включение компиляции XAML
Так как компиляция XAML включена по умолчанию в приложениях .NET MAUI, удаление любых XamlCompilation(XamlCompilationOptions.Skip)
инструкций гарантирует, что компиляция XAML включена.
Кроме того, компиляция XAML может быть принудительно включена путем передачи XamlCompilationOptions.Compile
в XamlCompilationAttribute:
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
В этом примере компиляция XAML включена для всех XAML, содержащихся в сборке, с ошибками XAML, сообщаемых во время компиляции, а не во время выполнения.
Компиляция XAML также может быть включена на уровне типа:
[XamlCompilation (XamlCompilationOptions.Compile)]
public partial class MyPage : ContentPage
{
...
}
В этом примере компиляция XAML включена только для MyPage
класса.