Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Приложения, неправильно использующие DynamicResource, теперь падают во время выполнения.
Представленная версия
.NET 10
Предыдущее поведение
Ранее приложения, которые неправильно инициализировали DynamicResource, продолжали работать без сбоя. Значения вернутся к значениям по умолчанию, и в выходных данных появится InvalidOperationException.
Новое поведение
Теперь приложения завершаются сбоем с ошибкой, похожей на следующую:
System.Windows.Markup.XamlParseException: Set property 'System.Windows.ResourceDictionary.Source' threw an exception.
Это происходит, когда используется DynamicResourceнеправильный тип ресурса. Например, приведенный ниже фрагмент кода приводит к сбою, так как SolidColorBrush используется вместо System.Windows.Media.Color:
<SolidColorBrush x:Key="RedColorBrush" Color="#FFFF0000" />
<SolidColorBrush x:Key="ResourceName" Color="{DynamicResource RedColorBrush}" />
Тип разрушающего изменения
Это и изменение несовместимости с исходным кодом, и изменение поведения.
Причина изменения
Это изменение улучшает производительность при использовании DynamicResource. Оптимизация гарантирует, что неправильная инициализация ресурсов немедленно обнаруживается, предотвращая непреднамеренное поведение.
Рекомендуемое действие
Чтобы избежать сбоев, убедитесь, что с DynamicResource используются правильные типы ресурсов. Например, следующий код устраняет проблему с помощью System.Windows.Media.Color вместо SolidColorBrush.
<Color x:Key="RedColor">#FFFF0000</Color>
<SolidColorBrush x:Key="ResourceName" Color="{DynamicResource RedColor}" />
Затронутые API
Нет.