Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Toepassingen die DynamicResource onjuist gebruiken, crashen nu tijdens de runtime.
Geïntroduceerde versie
.NET 10
Vorig gedrag
Voorheen zouden toepassingen die onjuist zijn geïnitialiseerd DynamicResource , blijven werken zonder vast te lopen. De waarden zouden terugvallen op de standaardwaarden en een InvalidOperationException wordt weergegeven in de uitvoer.
Nieuw gedrag
Toepassingen crashen nu met een fout die vergelijkbaar is met de volgende:
System.Windows.Markup.XamlParseException: Set property 'System.Windows.ResourceDictionary.Source' threw an exception.
Dit gebeurt wanneer een onjuist resourcetype wordt gebruikt met DynamicResource. Het onderstaande codefragment veroorzaakt bijvoorbeeld een crash omdat er een SolidColorBrush wordt gebruikt in plaats van System.Windows.Media.Color:
<SolidColorBrush x:Key="RedColorBrush" Color="#FFFF0000" />
<SolidColorBrush x:Key="ResourceName" Color="{DynamicResource RedColorBrush}" />
Type van brekende verandering
Dit is zowel een bron-incompatibele als gedragsverandering .
Reden voor wijziging
Deze wijziging verbetert de prestaties van DynamicResource gebruik. De optimalisatie zorgt ervoor dat onjuiste resource-initialisatie onmiddellijk wordt gedetecteerd, waardoor onbedoeld gedrag wordt voorkomen.
Aanbevolen actie
Om crashes te voorkomen, moet u ervoor zorgen dat de juiste resourcetypen worden gebruikt met DynamicResource. Met de volgende code wordt het probleem bijvoorbeeld opgelost met behulp System.Windows.Media.Color van SolidColorBrush:
<Color x:Key="RedColor">#FFFF0000</Color>
<SolidColorBrush x:Key="ResourceName" Color="{DynamicResource RedColor}" />
Betreffende API's
Geen.