Compartir a través de


ActivatorUtilities.CreateInstance requiere un proveedor que no sea NULL

Los dos ActivatorUtilities.CreateInstance métodos arrojan ahora una ArgumentNullException excepción si el provider parámetro es null.

Versión introducida

.NET 8 Preview 1

Comportamiento anterior

Se permitió un null valor para el provider parámetro . En algunos casos, el tipo especificado se ha creado correctamente.

Nuevo comportamiento

Cuando provider es null, se produce una ArgumentNullException excepción.

Tipo de cambio disruptivo

Este es un cambio de comportamiento.

Motivo del cambio

Hemos corregido la validación de parámetros junto con problemas de coincidencia de constructores para alinearse con el uso previsto de CreateInstance. Los CreateInstance() métodos tienen un parámetro provider no anulable, así que comúnmente se esperaba que no se permitiera un proveedor null.

Pase un valor que no sea NULL IServiceProvider para el provider argumento . Si el proveedor también implementa IServiceProviderIsService, los argumentos de constructor se pueden obtener a través de eso.

Como alternativa, si el escenario no requiere la inserción de dependencias, ya que IServiceProvider es null, use Activator.CreateInstance en su lugar.

Las APIs afectadas

Consulte también