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.
Os dois ActivatorUtilities.CreateInstance métodos agora lançam uma ArgumentNullException exceção se o provider parâmetro for null.
Versão introduzida
.NET 8 Visualização 1
Comportamento anterior
Foi permitido um null valor para o provider parâmetro. Em alguns casos, o tipo especificado ainda foi criado corretamente.
Novo comportamento
Quando provider é null, uma ArgumentNullException exceção é lançada.
Tipo de mudança disruptiva
Esta alteração é de natureza comportamental .
Motivo da mudança
Corrigimos a validação de parâmetros juntamente com problemas de correspondência de construtores para alinhar com a finalidade pretendida do CreateInstance. Os CreateInstance() métodos têm um parâmetro 'não nulo' provider, portanto, esperava-se geralmente que um provedor null não fosse permitido.
Ação recomendada
Passe um IServiceProvider não-nulo para o argumento provider. Se o provedor também implementar IServiceProviderIsService, os argumentos do construtor podem ser obtidos por meio disso.
Como alternativa, se o seu cenário não exigir injeção de dependência, uma vez que 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[])