Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las aplicaciones que usan DynamicResource de manera incorrecta ahora se bloquean en tiempo de ejecución.
Versión introducida
.NET 10
Comportamiento anterior
Anteriormente, las aplicaciones que inicializaban DynamicResource incorrectamente continuarían ejecutándose sin fallar. Los valores se revertirían a los valores predeterminados y InvalidOperationException aparecería en la salida.
Nuevo comportamiento
Las aplicaciones ahora se bloquean con un error similar al siguiente:
System.Windows.Markup.XamlParseException: Set property 'System.Windows.ResourceDictionary.Source' threw an exception.
Esto ocurre cuando se usa un tipo de recurso incorrecto con DynamicResource. Por ejemplo, el fragmento de código siguiente provoca un bloqueo porque se usa SolidColorBrush en lugar de System.Windows.Media.Color.
<SolidColorBrush x:Key="RedColorBrush" Color="#FFFF0000" />
<SolidColorBrush x:Key="ResourceName" Color="{DynamicResource RedColorBrush}" />
Tipo de cambio disruptivo
Esto es un cambio de comportamiento y no compatible con el origen.
Motivo del cambio
Este cambio mejora el rendimiento del uso de DynamicResource. La optimización garantiza que la inicialización de recursos incorrecta se detecta inmediatamente, lo que impide el comportamiento no deseado.
Acción recomendada
Para evitar bloqueos, asegúrese de que se utilizan los tipos de recursos correctos con DynamicResource. Por ejemplo, el código siguiente resuelve el problema mediante System.Windows.Media.Color en lugar de SolidColorBrush:
<Color x:Key="RedColor">#FFFF0000</Color>
<SolidColorBrush x:Key="ResourceName" Color="{DynamicResource RedColor}" />
Las APIs afectadas
Ninguno.