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 das alterações

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 seguinte exemplo, pode ser interrompido 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 vai gerar uma InvalidOperationException com uma mensagem semelhante a: 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 sobrecarga Type.GetMethod 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: