Nuevas sobrecargas del método System.Linq.Queryable
Se han agregado sobrecargas de métodos públicos adicionales a System.Linq.Queryable como parte de las nuevas características implementadas en https://github.com/dotnet/runtime/pull/47231. Si el código de reflexión no es lo suficientemente sólido a la hora de buscar métodos, estas adiciones pueden interrumpir las implementaciones del proveedor de consultas.
Descripción del cambio
En .NET 6, se agregaron nuevas sobrecargas a los métodos enumerados en la sección API afectadas. El código de reflexión, como el que se muestra en el ejemplo siguiente, se puede interrumpir como resultado de estas adiciones:
typeof(System.Linq.Queryable)
.GetMethods(BindingFlags.Public | BindingFlags.Static)
.Where(m => m.Name == "ElementAt")
.Single();
Este código de reflexión producirá ahora InvalidOperationException con un mensaje en el que señala algo similar a que la secuencia contiene más de un elemento.
Versión introducida
.NET 6
Motivo del cambio
Las nuevas sobrecargas se agregaron para ampliar la API Queryable
de LINQ.
Acción recomendada
Si es autor de la biblioteca de proveedores de consultas, asegúrese de que el código de reflexión es tolerante a las adiciones de sobrecarga del método. Por ejemplo, use una sobrecarga Type.GetMethod que acepte explícitamente los tipos de parámetro del método.
API afectadas
Se han agregado nuevas sobrecargas para los siguientes métodos de extensión Queryable: