Ausnahme durch Lösen eines verworfenen ServiceProviders
Wenn ein Dienst aufgelöst wird, nachdem der Dienstanbieter verworfen wurde, lösen die betroffenen Methoden jetzt eine ObjectDisposedException aus, anstatt einen Deadlock zu verursachen.
Eingeführt in Version
6.0 RC 1
Vorheriges Verhalten
In den seltenen Fällen, in denen eine Anwendung einen Dienst aufgelöst hat, nachdem der Dienstanbieter verworfen wurde, führte dies zuvor zu einem Deadlock.
Neues Verhalten
Ab .NET 6 wird eine ObjectDisposedException ausgelöst, wenn ein Dienst aufgelöst wird, nachdem der Dienstanbieter verworfen wurde, und es führt zu keinem Deadlock.
Typ des Breaking Changes
Diese Änderung kann sich auf die Quellkompatibilität auswirken.
Grund für die Änderung
Diese Änderung wurde eingeführt, um das Deadlockproblem zu beheben.
Empfohlene Maßnahme
Fangen Sie ObjectDisposedException ab, wenn Sie eine der betroffenen APIs aufrufen.
Betroffene APIs
- System.IServiceProvider.GetService(Type)
- Microsoft.Extensions.DependencyInjection.ISupportRequiredService.GetRequiredService(Type)
- Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider, Type)
- Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<T>(IServiceProvider)
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