다음을 통해 공유


DynamicResource를 잘못 사용하면 애플리케이션이 충돌합니다.

잘못 사용하는 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 이 향상됩니다. 최적화를 통해 잘못된 리소스 초기화가 즉시 catch되어 의도하지 않은 동작을 방지할 수 있습니다.

충돌을 방지하려면 올바른 리소스 종류가 .와 함께 DynamicResource사용되는지 확인합니다. 예를 들어 다음 코드는 다음 대신 System.Windows.Media.Color사용하여 SolidColorBrush 문제를 해결합니다.

<Color x:Key="RedColor">#FFFF0000</Color>
<SolidColorBrush x:Key="ResourceName" Color="{DynamicResource RedColor}" />

영향을 받는 API

없음.