Udostępnij za pośrednictwem


Nowe przeciążenia metody System.Linq.Queryable

Dodano dodatkowe przeciążenia metody publicznej w System.Linq.Queryable ramach nowych funkcji zaimplementowanych w programie https://github.com/dotnet/runtime/pull/47231. Jeśli kod odbicia nie jest wystarczająco niezawodny podczas wyszukiwania metod, te dodatki mogą przerwać implementacje dostawcy zapytań.

Opis zmiany

Na platformie .NET 6 dodano nowe przeciążenia do metod wymienionych w sekcji Interfejsy API, których dotyczy problem. kod Emocje ion, taki jak pokazany w poniższym przykładzie, może spowodować przerwanie w wyniku tych dodatków:

typeof(System.Linq.Queryable)
    .GetMethods(BindingFlags.Public | BindingFlags.Static)
    .Where(m => m.Name == "ElementAt")
    .Single();

Ten kod odbicia zgłosi teraz InvalidOperationException komunikat podobny do: Sekwencja zawiera więcej niż jeden element.

Wprowadzona wersja

.NET 6

Przyczyna wprowadzenia zmiany

Dodano nowe przeciążenia w celu rozszerzenia interfejsu API LINQ Queryable .

Jeśli jesteś autorem biblioteki dostawcy zapytań, upewnij się, że kod odbicia jest odporny na dodawanie przeciążeń metody. Na przykład użyj Type.GetMethod przeciążenia, które jawnie akceptuje typy parametrów metody.

Dotyczy interfejsów API

Dodano nowe przeciążenia dla następujących Queryable metod rozszerzenia: