La risoluzione di ServiceProvider eliminato genera un'eccezione
Quando un servizio viene risolto dopo l'eliminazione del provider di servizi, i metodi interessati ora generano un'eccezione ObjectDisposedException anziché causare un deadlock.
Versione introdotta
6.0 RC 1
Comportamento precedente
In precedenza, nel raro caso in cui un'applicazione risolvesse un servizio dopo l'eliminazione del provider di servizi, causava un deadlock.
Nuovo comportamento
A partire da .NET 6, viene generata un'eccezione ObjectDisposedException quando un servizio viene risolto dopo l'eliminazione del provider di servizi e non è presente alcun deadlock.
Tipo di modifica che causa un'interruzione
Questa modifica può influire sulla compatibilità dell'origine.
Motivo della modifica
Questa modifica è stata introdotta per correggere lo scenario di deadlock.
Azione consigliata
Intercettare ObjectDisposedException quando si chiama una delle API interessate.
API interessate
- System.IServiceProvider.GetService(Type)
- Microsoft.Extensions.DependencyInjection.ISupportRequiredService.GetRequiredService(Type)
- Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider, Type)
- Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<T>(IServiceProvider)