Partilhar 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 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.

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

Ver também