新的 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 擴充方法: