共用方式為


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 的使用性能。 優化可確保會立即攔截不正確的資源初始化,以避免非預期的行為。

若要避免當機,請確定已搭配 DynamicResource使用正確的資源類型。 例如,下列程式代碼會使用 System.Windows.Media.Color 來解決問題,而不是 SolidColorBrush

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

受影響的 API

沒有。