XAML のコンパイル
.NET マルチプラットフォーム アプリ UI (.NET MAUI) XAML は直接、XAML コンパイラ (XAMLC) を使って中間言語 (IL) にコンパイルできます。 XAML コンパイルには、多くの利点があります。
- XAML のコンパイル時チェックを実行し、エラーがあればユーザーに知らせます。
- XAML 要素の読み込みとインスタンス化の時間を短縮します。
- .xaml ファイルが含まれていないので、最終アセンブリのファイル サイズを低減できます。
.NET MAUI アプリでは、XAML コンパイルが既定で有効になっています。 デバッグ構成を使用してビルドされたアプリの場合、XAML コンパイルでは XAML のコンパイル時検証が提供されますが、アセンブリ内の XAML を IL に変換することはありません。 その代わり、XAML ファイルはアプリ パッケージに埋め込みリソースとして含まれており、実行時に評価されます。 リリース構成を使用してビルドされたアプリの場合、XAML コンパイルでは XAML のコンパイル時検証が提供され、XAML はアセンブリに書き込まれた IL に変換されます。 ただし、XAML コンパイル動作は、XamlCompilationAttribute クラスを使用する両方の構成でオーバーライドできます。
重要
コンパイル済みのバインディングを有効にすると、.NET MAUI アプリケーションのデータ バインディングのパフォーマンスを向上させることができます。 詳しくは、「コンパイル済みのバインディング」を参照してください。
XAML コンパイルを無効にする
XAML コンパイルは、XamlCompilationAttribute に XamlCompilationOptions.Skip
を渡すことによって無効にできます。
[assembly: XamlCompilation(XamlCompilationOptions.Skip)]
この例では、XAML コンパイルはアセンブリ内で無効になっており、コンパイル時ではなくランタイム時に XAML エラーが報告されます。
XAML コンパイルは、型レベルで無効にすることもできます。
[XamlCompilation (XamlCompilationOptions.Skip)]
public partial class MyPage : ContentPage
{
...
}
この例では、XAML コンパイルは MyPage
クラスに対してのみ無効になっています。
警告
XAML コンパイルを無効にすることはお勧めしません。XAML はランタイム時に解析および解釈されるため、アプリのパフォーマンスが低下します。
XAML コンパイルを有効にする
.NET MAUI アプリでは XAML コンパイルが既定で有効になっているため、任意のXamlCompilation(XamlCompilationOptions.Skip)
ステートメントを削除すると、XAML コンパイルが確実に有効になります。
また、XamlCompilationAttribute に XamlCompilationOptions.Compile
を渡すことによって強制的に XAML コンパイルを有効にすることもできます。
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
この例では、XAML コンパイルはアセンブリ内に含まれているすべての XAML で有効になっており、ランタイム時ではなくコンパイル時に XAML エラーが報告されます。
XAML コンパイルは、型レベルで有効にするにすることもできます。
[XamlCompilation (XamlCompilationOptions.Compile)]
public partial class MyPage : ContentPage
{
...
}
この例では、XAML コンパイルは MyPage
クラスに対してのみ有効になっています。
.NET MAUI