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。 不過,您可以使用 類別,在這兩個組態 XamlCompilationAttribute 中覆寫 XAML 編譯行為。

重要

您可以啟用編譯的系結,以改善 .NET MAUI 應用程式中的數據系結效能。 如需詳細資訊,請參閱編譯繫結

停用 XAML 編譯

您可以藉由傳遞 XamlCompilationOptions.Skip 至 來 XamlCompilationAttribute停用 XAML 編譯:

[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 編譯。

或者,可以強制啟用 XAML 編譯,方法是傳遞 XamlCompilationOptions.CompileXamlCompilationAttribute

[assembly: XamlCompilation(XamlCompilationOptions.Compile)]

在此範例中,會針對元件中包含的所有 XAML 啟用 XAML 編譯,並在編譯階段報告 XAML 錯誤,而不是運行時間。

您也可以在類型層級啟用 XAML 編譯:

[XamlCompilation (XamlCompilationOptions.Compile)]
public partial class MyPage : ContentPage
{
    ...
}

在此範例中,XAML 編譯只會針對 MyPage 類別啟用。