Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os dois métodos ActivatorUtilities.CreateInstance agora gerarão uma exceção ArgumentNullException se o parâmetro provider for null.
Versão introduzida
.NET 8 versão prévia 1
Comportamento anterior
Um null valor foi permitido para o provider parâmetro. Em alguns casos, o tipo especificado ainda foi criado corretamente.
Novo comportamento
Quando provider é null, uma exceção ArgumentNullException é gerada.
Tipo de mudança disruptiva
Esta é uma alteração comportamental.
Motivo da alteração
Corrigimos várias validações de parâmetro junto com problemas de correspondência de construtor para garantir o alinhamento com a finalidade pretendida de CreateInstance. Os CreateInstance() métodos têm um parâmetro não anulável provider , portanto, era geralmente esperado que um null provedor não fosse permitido.
Ação recomendada
Passe um valor não nulo IServiceProvider para o provider argumento. Se o provedor também implementar IServiceProviderIsService, os argumentos do construtor poderão ser obtidos por meio disso.
Como alternativa, se o cenário não exigir injeção de dependência, como IServiceProvider é null, use Activator.CreateInstance em vez disso.
APIs afetadas
- Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance<T>(IServiceProvider, Object[])
- Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider, Type, Object[])