Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
.NET Multi-Platform App UI (.NET MAUI) XAML kan bearbetas och blåsas upp i ett träd med objekt på olika sätt som beskrivs här. Från och med .NET 10 är standardinflationen körning för felsökningsversioner, XamlC (XamlCompilation) för Release. Vi rekommenderar att du provar källgenerering och använder den om den fungerar för dig. Detta kommer att bli framtiden i nya projekt, sedan i alla projekt, snart.
XAML-kompilering
XAML kompileras direkt till mellanliggande språk (IL) med XAML-kompilatorn (XAMLC). XAML-kompilering erbjuder ett antal fördelar:
- Den utför kompileringstidskontroll av XAML och meddelar dig om eventuella fel.
- Det tar bort en del av inläsnings- och instansieringstiden för XAML-element.
- Det hjälper till att minska filstorleken för den slutliga sammansättningen genom att inte längre inkludera .xaml-filer.
XAML-kompilering är aktiverat som standard i .NET MAUI-appar. För appar som skapats med hjälp av felsökningskonfigurationen tillhandahåller XAML-kompilering kompileringstidsverifiering av XAML, men konverterar inte XAML till IL i sammansättningen. I stället inkluderas XAML-filer som inbäddade resurser i apppaketet och utvärderas vid körning. För appar som skapats med releasekonfigurationen tillhandahåller XAML-kompilering kompileringstidsverifiering av XAML och konverterar XAML till IL som skrivs till samlingen. XAML-kompileringsbeteendet kan dock åsidosättas i båda konfigurationerna med XamlCompilationAttribute -klassen.
Viktigt!
Kompilerade bindningar kan aktiveras för att förbättra databindningsprestanda i .NET MAUI-program. Mer information finns i Kompilerade bindningar.
XAML Runtime Inflation
XAML kan laddas vid körning med återspegling. Det har fördelar, till exempel att tillåta scenario med frekvent omlastning, förkorta byggtiderna, tillåta diagnostikrapporten till IDE. Den här metoden bör dock undvikas eftersom det också är den långsammaste och syntaxfelen bara upptäcks vid körning.
XAML-källgenerering
Från och med .NET 10 kan XAML omvandlas till C#-kod vid kompilatorns tidpunkt. Den ger följande fördelar:
- Konsekvens: samma genererade kod som används i felsökning och frisläppning
- Hastighet: inflationstiden på enheten är 10 000% (100 gånger) snabbare i Debug-läge och 25% snabbare i Release-läge. Allokeringsvolymen minskas i samma proportion
- Felsök: du kan se den genererade koden, du kan bryta och felsöka den.
Detta är det rekommenderade sättet att gå vidare. Den aktiveras som standard i framtiden.
Aktivera källgenerering och inställningar per fil
Vi rekommenderar inte längre att du använder [XamlCompilation] attributet för att aktivera eller inaktivera kompilering per fil.
Du kan aktivera XAML-källgenerering på projektnivå genom att ange MauiXamlInflator värdet till SourceGen i csproj-filen enligt följande:
<MauiXamlInflator>SourceGen</MauiXamlInflator>
Detta använder källgenerering för både versions- och felsökningskonfigurationer för alla filer.
Du kan återgå till standardvärdet per fil (eller använda jokertecken) eller framtvinga en annan uppblåsare
<ItemGroup>
<MauiXaml Update="MyFile.xaml" Inflator="SourceGen" /> <!-- enable sourcegen on a single file. prefer setting it at project level -->
<MauiXaml Update="Controls\**.xaml" Inflator="Default" /> <!-- revert to defaults for all XAML in Controls. as of .NET 10, default is XamlC for Release, Runtime for Debug -->
<MauiXaml Update="Controls\**.xaml" Inflator="Runtime" /> <!-- force runtime inflation. if you have to do this, it probably indicates a bug in both XamlC and sourcegen, please report -->
</ItemGroup>
Det finns andra metadata som du kan ange för att instruera xaml sourcegenerator
<ItemGroup>
<MauiXaml Update="MyFile.xaml" Inflator="SourceGen" NoWarn="0612;0618" /> <!-- prevent the compiler to fail if the xaml use deprecated API -->
</ItemGroup>