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.
Empfohlene Maßnahme
Ü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
- Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance<T>(IServiceProvider, Object[])
- Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider, Type, Object[])
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für