XAML-Kompilierung
.NET Multi-platform App UI (.NET MAUI) XAML wird mit dem XAML-Compiler (XAMLC) direkt in Intermediate Language (IL) kompiliert. Die XAML-Kompilierung bietet eine Reihe von Vorteilen:
- Sie führt eine Kompilierzeitprüfung von XAML durch und benachrichtigt Sie über etwaige Fehler.
- Er entfernt etwas Lade- und Instanziierungszeit für XAML-Elemente.
- Er hilft bei der Verringerung der Dateigröße der finalen Assembly, indem XAML-Dateien nicht mehr eingeschlossen werden.
Die XAML-Kompilierung ist in .NET MAUI-Apps standardmäßig aktiviert. Für Apps, die mit der Debugkonfiguration erstellt wurden, stellt die XAML-Kompilierung eine Kompilierungszeitüberprüfung von XAML bereit, konvertiert jedoch nicht den XAML-Code in die Il-Datei in der Assembly. Stattdessen werden XAML-Dateien als eingebettete Ressourcen im App-Paket enthalten und zur Laufzeit ausgewertet. Für Apps, die mit der Releasekonfiguration erstellt wurden, stellt die XAML-Kompilierung die Kompilierungszeitüberprüfung von XAML bereit und konvertiert den XAML-Code in eine IL, die in die Assembly geschrieben wurde. Das XAML-Kompilierungsverhalten kann jedoch in beiden Konfigurationen mit der Klasse XamlCompilationAttribute außer Kraft gesetzt werden.
Wichtig
Kompilierte Bindungen können aktiviert werden, um die Leistung der Datenbindung in .NET MAUI-Anwendungen zu verbessern. Weitere Informationen finden Sie unter Kompilierte Bindungen.
XAML-Kompilierung deaktivieren
Die XAML-Kompilierung kann durch Übergabe von XamlCompilationOptions.Skip
an die XamlCompilationAttribute deaktiviert werden:
[assembly: XamlCompilation(XamlCompilationOptions.Skip)]
In diesem Beispiel ist die XAML-Kompilierung innerhalb der Assembly deaktiviert, wobei XAML-Fehler zur Laufzeit gemeldet werden und nicht kompiliert werden.
Die XAML-Kompilierung kann auch auf Typebene deaktiviert werden:
[XamlCompilation (XamlCompilationOptions.Skip)]
public partial class MyPage : ContentPage
{
...
}
In diesem Beispiel ist die XAML-Kompilierung nur für die MyPage
-Klasse deaktiviert.
Warnung
Das Deaktivieren der XAML-Kompilierung wird nicht empfohlen, da XAML dann zur Laufzeit analysiert und interpretiert wird, wodurch die App-Leistung reduziert wird.
XAML-Kompilierung aktivieren
Da die XAML-Kompilierung in .NET MAUI-Anwendungen standardmäßig aktiviert ist, wird durch Entfernen aller XamlCompilation(XamlCompilationOptions.Skip)
-Anweisungen sichergestellt, dass die XAML-Kompilierung aktiviert ist.
Alternativ kann die XAML-Kompilierung zwangsweise aktiviert werden, indem XamlCompilationOptions.Compile
an die XamlCompilationAttribute übergeben wird:
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
In diesem Beispiel wird die XAML-Kompilierung für alle in der Assembly enthaltenen XAML-Dateien aktiviert, wobei XAML-Fehler zur Kompilierungszeit und nicht zur Laufzeit gemeldet werden.
Die XAML-Kompilierung kann auch auf Typebene aktiviert werden:
[XamlCompilation (XamlCompilationOptions.Compile)]
public partial class MyPage : ContentPage
{
...
}
In diesem Beispiel ist die XAML-Kompilierung nur für die MyPage
-Klasse aktiviert.