Udostępnij za pośrednictwem


Kompilacja XAML w programie Xamarin.Forms

Język XAML można opcjonalnie skompilować bezpośrednio w języku pośrednim (IL) za pomocą kompilatora XAML (XAMLC).

Kompilacja XAML oferuje szereg korzyści:

  • Wykonuje sprawdzanie czasu kompilacji kodu XAML, powiadamiając użytkownika o wszelkich błędach.
  • Usuwa część czasu ładowania i tworzenia wystąpień dla elementów XAML.
  • Pomaga to zmniejszyć rozmiar pliku końcowego zestawu, nie dołączając już plików xaml.

Kompilacja XAML jest domyślnie wyłączona w strukturze. Jednak jest ona włączona w szablonach dla nowych projektów. Można ją jawnie włączyć lub wyłączyć (XamlCompilationOptions.Skip) zarówno na poziomie zestawu, jak i klasy, dodając XamlCompilation atrybut .

W poniższym przykładzie kodu pokazano włączanie kompilacji XAML na poziomie zestawu:

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

Chociaż atrybut można umieścić w dowolnym miejscu, dobrym miejscem, aby umieścić go w AssemblyInfo.cs.

W tym przykładzie zostanie wykonane sprawdzanie czasu kompilacji wszystkich kodu XAML zawartego w zestawie, a błędy XAML są zgłaszane w czasie kompilacji, a nie w czasie wykonywania. W związku z assembly tym prefiks atrybutu XamlCompilation określa, że atrybut ma zastosowanie do całego zestawu.

Uwaga

Atrybut XamlCompilation i XamlCompilationOptions wyliczenie znajdują się w Xamarin.Forms.Xaml przestrzeni nazw, która musi zostać zaimportowana, aby ich używać.

W poniższym przykładzie kodu pokazano włączanie kompilacji XAML na poziomie klasy:

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

W tym przykładzie zostanie wykonane sprawdzanie czasu kompilacji kodu XAML dla HomePage klasy i błędy zgłaszane w ramach procesu kompilacji.

Uwaga

Skompilowane powiązania można włączyć w celu zwiększenia wydajności powiązań danych w Xamarin.Forms aplikacjach. Aby uzyskać więcej informacji, zobacz Skompilowane powiązania.