잘못 사용하는 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
없음.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET