錯誤使用 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
沒有。