Résolution de la levée d’exceptions par un ServiceProvider supprimé
Lorsqu’un service est résolu après que le fournisseur de services a été supprimé, les méthodes affectées lèvent désormais une ObjectDisposedException au lieu de provoquer un interblocage.
Version introduite
6.0 RC 1
Comportement précédent
Auparavant, dans les rares cas où une application a résolu un service après la suppression du fournisseur de services, cela entraînait un interblocage.
Nouveau comportement
À compter de .NET 6, une ObjectDisposedException est levée lorsqu’un service est résolu une fois que le fournisseur de services a été supprimé et qu’il n’y a pas d’interblocage.
Type de changement cassant
Ce changement peut affecter la compatibilité source.
Raison du changement
Ce changement a été introduit pour résoudre le scénario d’interblocage.
Action recommandée
Interceptez ObjectDisposedException lors de l’appel de l’une des API affectées.
API affectées
- System.IServiceProvider.GetService(Type)
- Microsoft.Extensions.DependencyInjection.ISupportRequiredService.GetRequiredService(Type)
- Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider, Type)
- Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<T>(IServiceProvider)
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour