Udostępnij za pośrednictwem


ActivatorUtilities.CreateInstance wymaga dostawcy innego niż null

Dwie metody zgłaszają ArgumentNullException teraz wyjątek, jeśli provider parametr ma wartość null.ActivatorUtilities.CreateInstance

Wprowadzona wersja

.NET 8 (wersja zapoznawcza 1)

Poprzednie zachowanie

Wartość null była dozwolona dla parametru provider . W niektórych przypadkach określony typ został nadal poprawnie utworzony.

Nowe zachowanie

Gdy provider parametr to null, zgłaszany ArgumentNullException jest wyjątek.

Typ zmiany powodującej niezgodność

Ta zmiana jest zmianą behawioralną.

Przyczyna wprowadzenia zmiany

Naprawiliśmy walidację parametru wraz z problemami dopasowywania konstruktorów w celu dopasowania do zamierzonego CreateInstancecelu . Metody CreateInstance() mają parametr niezwiązany provider z wartością null, więc ogólnie oczekiwano, że null dostawca nie jest dozwolony.

Przekaż argument o wartości innej niż null IServiceProviderprovider . Jeśli dostawca implementuje IServiceProviderIsServicerównież , argumenty konstruktora można uzyskać za pomocą tego polecenia.

Alternatywnie, jeśli scenariusz nie wymaga wstrzykiwania zależności, ponieważ IServiceProvider jest nullto , użyj Activator.CreateInstance zamiast tego .

Dotyczy interfejsów API

Zobacz też