Компиляция XAML в Xamarin.Forms

XAML можно компилировать непосредственно на промежуточный язык (IL) с помощью компилятора XAML (XAMLC).

Компиляция XAML предлагает ряд преимуществ:

  • Он проверяет XAML во время компиляции, уведомляя пользователя об ошибках.
  • Он сокращает часть времени загрузки и создания элементов XAML.
  • Он позволяет сократить размер файла окончательной сборки, так как больше не добавляет XAML-файлы.

Компиляция XAML отключена по умолчанию в платформе. Однако он включен в шаблонах для новых проектов. Его можно явно включить или отключить (XamlCompilationOptions.Skip) на уровне сборки и класса, добавив XamlCompilation атрибут.

В следующем примере кода демонстрируется включение компиляции XAML на уровне сборки:

using Xamarin.Forms.Xaml;
...
[assembly: XamlCompilation (XamlCompilationOptions.Compile)]
namespace PhotoApp
{
  ...
}

Хотя атрибут можно разместить в любом месте, хорошее место, чтобы поместить его в AssemblyInfo.cs.

В этом примере выполняется проверка времени компиляции всех XAML, содержащихся в сборке, с ошибками XAML, сообщаемых во время компиляции, а не во время выполнения. Поэтому префикс атрибута XamlCompilation указывает, assembly что атрибут применяется ко всей сборке.

Примечание.

Атрибут XamlCompilation и перечисление XamlCompilationOptions находятся в Xamarin.Forms.Xaml пространстве имен, которое необходимо импортировать для их использования.

В следующем примере кода демонстрируется включение компиляции XAML на уровне класса:

using Xamarin.Forms.Xaml;
...
[XamlCompilation (XamlCompilationOptions.Compile)]
public class HomePage : ContentPage
{
  ...
}

В этом примере проверка времени компиляции xaml для HomePage класса будет выполнена, и в процессе компиляции сообщались ошибки.

Примечание.

Скомпилированные привязки можно включить для повышения производительности привязки данных в Xamarin.Forms приложениях. Дополнительные сведения см. в статье Скомпилированные привязки.