Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Начиная с .NET 10 (предварительная версия 4), приложения, неправильно использующие DynamicResource
, теперь завершают работу с ошибкой во время выполнения.
Представленная версия
.NET 10 (предварительная версия 4)
Предыдущее поведение
Приложения, которые неправильно инициализированы 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
Нет.