Compilazione XAML in Xamarin.Forms

XAML può essere compilato direttamente in linguaggio intermedio (IL) con il compilatore XAML (XAMLC).

La compilazione XAML offre diversi vantaggi:

  • Esegue il controllo del codice XAML in fase di compilazione, notificando all'utente eventuali errori.
  • Rimuove parte del tempo di carico e di creazione dell'istanza per gli elementi XAML.
  • Consente di ridurre le dimensioni del file dell'assembly finale non includendo più i file XAML.

La compilazione XAML è disabilitata per impostazione predefinita nel framework. Tuttavia, è abilitato nei modelli per i nuovi progetti. Può essere abilitata o disabilitata in modo esplicito (XamlCompilationOptions.Skip) a livello di assembly e classe aggiungendo l'attributo XamlCompilation .

L'esempio di codice seguente illustra l'abilitazione della compilazione XAML a livello di assembly:

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

Mentre l'attributo può essere posizionato ovunque, un buon posto per inserirlo è in AssemblyInfo.cs.

In questo esempio verrà eseguito il controllo in fase di compilazione di tutto il codice XAML contenuto nell'assembly, con errori XAML segnalati in fase di compilazione anziché in fase di esecuzione. Di conseguenza, il assembly prefisso dell'attributo XamlCompilation specifica che l'attributo si applica all'intero assembly.

Nota

L'attributo XamlCompilation e l'enumerazione XamlCompilationOptions risiedono nello spazio dei Xamarin.Forms.Xaml nomi, che deve essere importato per usarli.

L'esempio di codice seguente illustra l'abilitazione della compilazione XAML a livello di classe:

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

In questo esempio, il controllo in fase di compilazione del codice XAML per la HomePage classe verrà eseguito ed errori segnalati come parte del processo di compilazione.

Nota

Le associazioni compilate possono essere abilitate per migliorare le prestazioni di data binding nelle Xamarin.Forms applicazioni. Per altre informazioni, vedere Binding compilati.