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.

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 :