新的 System.Linq.Queryable 方法重载
已将其他公共方法重载添加到 System.Linq.Queryable,作为在 https://github.com/dotnet/runtime/pull/47231 中实现的新功能的一部分。 如果查找方法时的反射代码不够可靠,这些新增功能可以中断查询提供程序的实现。
更改说明
在 .NET 6 中,已将新的重载添加到受影响的 API 部分列出的方法中。 反射代码可能会因这些新增功能而出现中断,如以下示例中所示:
typeof(System.Linq.Queryable)
.GetMethods(BindingFlags.Public | BindingFlags.Static)
.Where(m => m.Name == "ElementAt")
.Single();
此时,该反射代码将引发 InvalidOperationException,其中包含一条类似于以下内容的消息:序列包含多个元素。
引入的版本
.NET 6
更改原因
添加了新的重载来扩展 LINQ Queryable
API。
建议操作
如果你是查询提供程序库作者,请确保反射代码具有方法重载添加功能。 例如,使用显式接受该方法的参数类型的 Type.GetMethod 重载。
受影响的 API
为以下 Queryable 扩展方法添加了新重载:
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈