ActivatorUtilities.CreateInstance requiere un proveedor que no sea NULL.
Los dos métodos ActivatorUtilities.CreateInstance inician ahora una excepción ArgumentNullException si el parámetro provider
es null
.
Versión introducida
.NET 8 Preview 1
Comportamiento anterior
Se permitió un valor null
para el parámetro provider
. En algunos casos, el tipo especificado se ha creado correctamente.
Comportamiento nuevo
Cuando provider
es null
, se genera una excepción ArgumentNullException.
Tipo de cambio importante
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 alinearnos con el propósito previsto de CreateInstance. Los métodos CreateInstance()
tienen un parámetro provider
que no acepta valores NULL, por lo que en general se esperaba que no se permitiera un proveedor null
.
Acción recomendada
Pase un valor IServiceProvider distinto de NULL para el argumento provider
. Si el proveedor también implementa IServiceProviderIsService, los argumentos de constructor se pueden obtener a través de ello.
Como alternativa, si el escenario no requiere inserción de dependencias, ya que IServiceProvider es null
, use Activator.CreateInstance en su lugar.
API afectadas
- Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance<T>(IServiceProvider, Object[])
- Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider, Type, Object[])