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 プレフィックスにより、属性がアセンブリ全体に適用されることが指定されます。

Note

XamlCompilation 属性と XamlCompilationOptions 列挙体は Xamarin.Forms.Xaml 名前空間に存在し、使用するにはインポートする必要があります。

次のコード例は、クラス レベルで XAML のコンパイルを有効にする方法を示しています。

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

この例では、HomePage クラスの XAML のコンパイル時チェックが実行され、コンパイル プロセスの一環としてエラーが報告されます。

Note

コンパイル済みのバインドを有効にして、Xamarin.Forms アプリケーションでのデータ バインディングのパフォーマンスを改善できます。 詳しくは、「コンパイル済みのバインディング」を参照してください。