ActivatorUtilities.CreateInstance richiede un provider non null
I due metodi ActivatorUtilities.CreateInstance generano ora un'eccezione ArgumentNullException se il parametro provider
è null
.
Versione introdotta
.NET 8 Anteprima 1
Comportamento precedente
Era consentito un valore null
per il parametro provider
. In alcuni casi, il tipo specificato veniva comunque creato correttamente.
Nuovo comportamento
Se provider
è null
, viene generata un'eccezione ArgumentNullException.
Tipo di modifica di rilievo
Questa è una modifica funzionale.
Motivo della modifica
È stata corretta la convalida dei parametri insieme ai problemi di corrispondenza del costruttore in linea con lo scopo previsto di CreateInstance. I metodi CreateInstance()
hanno un parametro provider
che non ammette i valori null, quindi in genere era previsto che un provider null
non fosse consentito.
Azione consigliata
Passare un valore IServiceProvider non null per l'argomento provider
. Se il provider implementa anche IServiceProviderIsService, gli argomenti del costruttore possono essere ottenuti tramite tale argomento.
In alternativa, se lo scenario non richiede l'inserimento delle dipendenze, poiché IServiceProvider è null
, usare invece Activator.CreateInstance.
API interessate
- Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance<T>(IServiceProvider, Object[])
- Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider, Type, Object[])