Compartilhar via


Novas sobrecargas do método System.Linq.Queryable

Sobrecargas adicionais de método público foram adicionadas a System.Linq.Queryable como parte dos novos recursos implementados em https://github.com/dotnet/runtime/pull/47231. Se o código de reflexão não for suficientemente robusto ao pesquisar métodos, essas adições poderão interromper as implementações do provedor de consultas.

Descrição da alteração

No .NET 6, novas sobrecargas foram adicionadas aos métodos listados na seção APIs afetadas . O código de reflexão, como o mostrado no exemplo a seguir, pode parar de funcionar como resultado dessas adições.

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

Esse código de reflexão agora lançará um InvalidOperationException com uma mensagem semelhante a: Sequência contém mais de um elemento.

Versão introduzida

.NET 6

Motivo da alteração

As novas sobrecargas foram adicionadas para estender a API LINQ Queryable.

Se você é autor de bibliotecas do provedor de consultas, verifique se o código de reflexão é tolerante a adições de sobrecarga de método. Por exemplo, use uma Type.GetMethod sobrecarga que aceite explicitamente os tipos de parâmetro do método.

APIs afetadas

Novas sobrecargas foram adicionadas para os seguintes Queryable métodos de extensão: