Компиляция 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 класса.