Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplicações que usam DynamicResource incorretamente agora crasham em tempo de execução.
Versão introduzida
.NET 10
Comportamento anterior
Anteriormente, os aplicativos inicializados DynamicResource incorretamente continuavam em execução sem falhar. Os valores voltariam aos padrões e um InvalidOperationException apareceria na saída.
Novo comportamento
Os aplicativos agora falham com um erro semelhante ao seguinte:
System.Windows.Markup.XamlParseException: Set property 'System.Windows.ResourceDictionary.Source' threw an exception.
Isso ocorre quando um tipo de recurso incorreto é usado com DynamicResource. Por exemplo, o trecho de código abaixo causa uma falha porque a SolidColorBrush é usado em vez de System.Windows.Media.Color:
<SolidColorBrush x:Key="RedColorBrush" Color="#FFFF0000" />
<SolidColorBrush x:Key="ResourceName" Color="{DynamicResource RedColorBrush}" />
Tipo de mudança disruptiva
Trata-se de uma mudançacomportamental e incompatível com a fonte.
Motivo da mudança
Esta alteração melhora o desempenho na utilização de DynamicResource. A otimização garante que a inicialização incorreta de recursos seja detetada imediatamente, evitando comportamentos não intencionais.
Ação recomendada
Para evitar falhas, assegure-se de que os tipos de recursos corretos sejam usados com DynamicResource. Por exemplo, o código a seguir resolve o problema usando System.Windows.Media.Color em vez de SolidColorBrush:
<Color x:Key="RedColor">#FFFF0000</Color>
<SolidColorBrush x:Key="ResourceName" Color="{DynamicResource RedColor}" />
APIs afetadas
Nenhum.