Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
.NET 10, AsyncEnumerable sınıfını tanıtır, bu sınıf IAsyncEnumerable<T> türü için tam bir LINQ uzantı yöntemleri kümesi sağlar. Bu sınıf , topluluk tarafından korunan System.Linq.Async NuGet kitaplığının yerini alır ve belirsizliklerden dolayı derleme hatalarına neden olabilir.
Sürüm kullanıma sunulmuştur
.NET 10
Önceki davranış
Daha önce, topluluk tarafından korunan AsyncEnumerable paketindeki System.Linq.Async sınıfı, IAsyncEnumerable<T> için LINQ desteği sağlıyordu.
Yeni davranış
AsyncEnumerable .NET 10'daki ve System.Linq.AsyncEnumerable NuGet paketindeki sınıf, IAsyncEnumerable<T> için LINQ desteği sağlar.
Kesinti yaratan değişiklik türü
Bu değişiklik kaynak uyumluluğunu etkileyebilir.
Değişiklik nedeni
IAsyncEnumerable<T> yaygın olarak kullanılan bir arabirimdir, bu nedenle platformun türü için LINQ desteği sağlaması gerekir.
System.Linq.Async bakımcıları ve diğer topluluk üyeleri, doğrudan platforma dahil edilmek için başvuruda bulundular.
Önerilen eylem
.NET 10'a yükseltiyorsanız ve kodunuz için System.Linq.Asyncdoğrudan paket başvurusu içeriyorsa, bu paket başvurularını kaldırın veya sürüm 7.0.0'a yükseltin. Hem .NET 10 hem de önceki bir sürümü birden çok hedeflemek için bunun yerine bir System.Linq.AsyncEnumerable paket başvurusu ekleyin.
Başka bir paket aracılığıyla dolaylı olarak tüketiliyorsa System.Linq.Async veya değerine sahip meta veriler ekleyerek <ExcludeAssets> belirsizlik hatalarından compileallkaçının:
geçişli kullanımına
System.Linq.Asyncizin vermek için olarak<ExcludeAssets>ayarlayıncompile:<PackageReference Include="System.Linq.Async" Version="6.0.1"> <ExcludeAssets>compile</ExcludeAssets> </PackageReference>Bu yapılandırma, diğer paketlerin System.Linq.Async'i dahili olarak kullanmaya devam etmesini sağlarken kodunuzda doğrudan kullanımı engeller.
Tam dışlama için olarak
<ExcludeAssets>ayarlayınall:<PackageReference Include="System.Linq.Async" Version="6.0.1"> <ExcludeAssets>all</ExcludeAssets> </PackageReference>Bu yapılandırmayı yalnızca çalışma zamanında System.Linq.Async gerektirmeyen bağımlılıklar olmadığından eminseniz kullanın.
Çoğu kullanan kod değişiklik olmadan uyumlu olmalıdır, ancak bazı arama siteleri daha yeni adlara ve imzalara başvurmak için güncelleştirmelere ihtiyaç duyabilir. Örneğin, bir Select çağrısı e.Select(i => i * 2) öncesi ve sonrasında aynı şekilde çalışır. Ancak, e.SelectAwait(async (int i, CancellationToken ct) => i * 2) çağrısının, e.Select(async (int i, CancellationToken ct) => i * 2)’te olduğu gibi, Select kullanılarak SelectAwait yerine değiştirilmesi gerekir.
için kullanılabilen LINQ uzantısı yöntemlerinin tamamı için IAsyncEnumerable<T>System.Linq.AsyncEnumerable API belgelerine bakın.