Nouvelles surcharges de méthodes System.Linq.Queryable
Des surcharges de méthodes publiques supplémentaires ont été ajoutées à System.Linq.Queryable dans le cadre des nouvelles fonctionnalités implémentées dans https://github.com/dotnet/runtime/pull/47231. Si votre code de réflexion n’est pas suffisamment robuste lors de la recherche de méthodes, ces ajouts peuvent interrompre vos implémentations de fournisseur de requêtes.
Description de la modification
Dans .NET 6, de nouvelles surcharges ont été ajoutées aux méthodes répertoriées dans la section API affectées. Le code de réflexion, tel que celui illustré dans l’exemple suivant, peut s’arrêter à la suite de ces ajouts :
typeof(System.Linq.Queryable)
.GetMethods(BindingFlags.Public | BindingFlags.Static)
.Where(m => m.Name == "ElementAt")
.Single();
Ce code de réflexion lève désormais une InvalidOperationException avec un message similaire à : La séquence contient plusieurs éléments.
Version introduite
.NET 6
Raison du changement
Les nouvelles surcharges ont été ajoutées pour étendre l’API LINQ Queryable
.
Action recommandée
Si vous êtes un auteur de bibliothèque fournisseur de requêtes, assurez-vous que votre code de réflexion est tolérant aux ajouts de surcharges de méthode. Par exemple, utilisez une surcharge Type.GetMethod qui accepte explicitement les types de paramètres de la méthode.
API affectées
De nouvelles surcharges ont été ajoutées pour les méthodes d’extension Queryable suivantes :
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