Freigeben über


ActivatorUtilities.CreateInstance erfordert einen Nicht-NULL-Anbieter

Die beiden ActivatorUtilities.CreateInstance-Methoden lösen jetzt eine ArgumentNullException-Ausnahme aus, wenn der provider-Parameter null ist.

Eingeführt in Version

.NET 8 Preview 1

Vorheriges Verhalten

Für den provider-Parameter war ein null-Wert zulässig. In einigen Fällen wurde der angegebene Typ weiterhin ordnungsgemäß erstellt.

Neues Verhalten

Wenn provider den Wert null aufweist, wird eine ArgumentNullException ausgelöst.

Typ des Breaking Changes

Diese Änderung ist eine Verhaltensänderung.

Grund für die Änderung

Wir haben Probleme bei der Parameterüberprüfung sowie Probleme beim Konstruktorabgleich behoben, sodass der beabsichtigte Zweck von CreateInstance erfüllt wird. Die CreateInstance()-Methoden enthalten einen Non-Nullable-provider-Parameter, sodass im Allgemeinen erwartet wurde, dass ein null-Anbieter nicht zulässig war.

Übergeben Sie einen Nicht-NULL-IServiceProvider für das provider-Argument. Wenn der Anbieter auch IServiceProviderIsService implementiert, können Konstruktorargumente dadurch abgerufen werden.

Wenn Ihr Szenario keine Abhängigkeitsinjektion erfordert, da IServiceProvider den Wert null hat, verwenden Sie stattdessen Activator.CreateInstance.

Betroffene APIs

Siehe auch