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 アプリケーションでのデータ バインディングのパフォーマンスを改善できます。 詳しくは、「コンパイル済みのバインディング」を参照してください。