Xamarin.Forms 中的 XAML 编译

XAML 可以根据需要使用 XAML 编译器 (XAMLC) 直接编译为中间语言 (IL)。

XAML 编译提供了诸多好处:

  • 它会执行 XAML 的编译时检查,从而可向用户通知任何错误。
  • 会消除 XAML 元素的某些负载和实例化时间。
  • 不再包含 .xaml 文件,有助于减小最终程序集的文件大小。

XAML 编译在框架中默认禁用。 但是,它在新项目的模板中启用。 可以通过添加 XamlCompilation 属性在程序集和类级别显式启用或禁用 (XamlCompilationOptions.Skip) 它。

下面的代码示例演示如何在程序集级别启用 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
{
  ...
}

在此示例中,将对 HomePage 类的 XAML 执行编译时检查,并在编译过程中报告错误。

注意

可启用已编译的绑定来提升 Xamarin.Forms 应用程序中的数据绑定性能。 有关详细信息,请参阅已编译的绑定