Share via


ActivatorUtilities.CreateInstance requer provedor não nulo

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 de rutura

Esta mudança é uma mudança comportamental.

Razão para a alteração

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 anulável provider , portanto, geralmente esperava-se que um null provedor não fosse permitido.

Passe um não-nulo IServiceProvider para o provider argumento. Se o provedor também implementa , argumentos de IServiceProviderIsServiceconstrutor podem ser obtidos através 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

Consulte também