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
.
Zalecana akcja
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: