Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aplikacje, które używają DynamicResource niepoprawnie teraz ulegają awarii w czasie wykonywania.
Wersja wprowadzona
.NET 10
Poprzednie zachowanie
Wcześniej aplikacje, które niepoprawnie zainicjowały DynamicResource, działałyby nadal bez awarii. Wartości zostaną przywrócone do wartości domyślnych, a w danych wyjściowych pojawi się InvalidOperationException.
Nowe zachowanie
Aplikacje ulegają awarii z powodu błędu podobnego do następującego:
System.Windows.Markup.XamlParseException: Set property 'System.Windows.ResourceDictionary.Source' threw an exception.
Dzieje się tak, gdy nieprawidłowy typ zasobu jest używany z DynamicResource. Na przykład poniższy fragment kodu powoduje awarię, ponieważ SolidColorBrush element jest używany zamiast System.Windows.Media.Color:
<SolidColorBrush x:Key="RedColorBrush" Color="#FFFF0000" />
<SolidColorBrush x:Key="ResourceName" Color="{DynamicResource RedColorBrush}" />
Typ zmiany przełamującej
Jest to zarówno niekompatybilna ze źródłem jak i zmiana behawioralna.
Przyczyna zmiany
Zmiana ta poprawia wydajność użycia DynamicResource. Optymalizacja gwarantuje, że nieprawidłowe inicjowanie zasobów jest przechwytywane natychmiast, uniemożliwiając niezamierzone zachowanie.
Zalecana akcja
Aby uniknąć awarii, upewnij się, że poprawne typy zasobów są używane z programem DynamicResource. Na przykład następujący kod rozwiązuje problem przy użyciu polecenia System.Windows.Media.Color zamiast SolidColorBrush:
<Color x:Key="RedColor">#FFFF0000</Color>
<SolidColorBrush x:Key="ResourceName" Color="{DynamicResource RedColor}" />
Interfejsy API, których dotyczy problem
Żaden.