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
.
Ação recomendada
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: