Nouvelles surcharges de méthode System.Linq.Queryable

Des surcharges supplémentaires de méthodes publiques ont été ajoutées à System.Linq.Queryable dans le cadre des nouvelles fonctionnalités mises en œuvre 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 les implémentations de votre 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 présenté dans l’exemple suivant, peut s’interrompre à 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 un InvalidOperationException avec un message similaire à : La séquence contient plus d'un élément.

Version introduite

.NET 6

Raison de la modification

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 Type.GetMethod surcharge 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 :