İçinde XAML derleme Xamarin.Forms

XAML isteğe bağlı olarak, XAML derleyicisi (XAMLC) ile doğrudan ara dil (IL) olarak derlenebilir.

XAML derlemesi bir dizi avantaj sunar:

  • Her türlü hatayı bildirerek, XAML için derleme zamanı denetimi gerçekleştirir.
  • XAML öğelerinin yükleme ve örnekleme zamanından bazılarını kaldırır.
  • Artık. xaml dosyaları dahil olmaksızın son derlemenin dosya boyutunu azaltmaya yardımcı olur.

XAML derlemesi, çerçevede varsayılan olarak devre dışıdır. Ancak, yeni projeler için şablonlarda etkindir. XamlCompilationOptions.SkipÖzniteliği eklenerek hem derleme hem de sınıf düzeyinde açıkça etkinleştirilebilir veya devre dışı bırakılabilir () XamlCompilation .

Aşağıdaki kod örneği, derleme düzeyinde XAML derlemesini etkinleştirmeyi gösterir:

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

Özniteliği her yerde yerleştirilebileceği gibi, bu, bir yere yerleştirmek için uygun bir yer olsa da AssemblyInfo. cs' dir.

Bu örnekte, derlemede bulunan tüm XAML 'nin derleme zamanı denetlemesi, çalışma zamanı yerine derleme zamanında bildirilen XAML hatalarıyla yapılır. Bu nedenle, assemblyXamlCompilation özniteliğin öneki özniteliğin tüm derleme için geçerli olduğunu belirtir.

Not

XamlCompilationÖzniteliği ve numaralandırması, XamlCompilationOptionsXamarin.Forms.Xaml Bu ad alanında yer alır ve bunları kullanmak için içeri aktarılmalıdır.

Aşağıdaki kod örneği, sınıf düzeyinde XAML derlemesini etkinleştirmeyi gösterir:

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

Bu örnekte, sınıf için XAML 'in derleme zamanı denetlemesi HomePage gerçekleştirilecek ve derleme sürecinin bir parçası olarak bildirilen hatalar olacaktır.

Not

Derlenmiş bağlamalar, uygulamalardaki veri bağlama performansını geliştirmek için etkinleştirilebilir Xamarin.Forms . Daha fazla bilgi için bkz. derlenmiş bağlamalar.