Compartilhar via


ActivatorUtilities.CreateInstance requer um provedor não nulo

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.

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

Consulte também