SYSLIB0045: Bazı şifreleme fabrikası yöntemleri kullanımdan kaldırılmış
Aşağıdaki System.Security.Cryptography
yöntemler .NET 7'den başlayarak eskidir. Bunları kodda kullanmak, derleme zamanında uyarı SYSLIB0045
oluşturur. Bu fabrika yöntemlerinin her biri algoritma adını temsil eden bir dize bağımsız değişkenini kabul eder. Bu yöntemler öğesini CryptoConfig.CreateFromName çağırır ve sonucu dönüş türüne döndürür.
- Aes.Create(String)
- AsymmetricAlgorithm.Create(String)
- DES.Create(String)
- ECDiffieHellman.Create(String)
- ECDsa.Create(String)
- HashAlgorithm.Create(String)
- KeyedHashAlgorithm.Create(String)
- RandomNumberGenerator.Create(String)
- RC2.Create(String)
- Rijndael.Create(String)
- RSA.Create(String)
- SHA1.Create(String)
- SHA256.Create(String)
- SHA384.Create(String)
- SHA512.Create(String)
- SymmetricAlgorithm.Create(String)
- TripleDES.Create(String)
Kırpılan uygulamalarda kırpılmayan uygulamalarda döndürebileceğinden null
bu yöntemler işaretlendi[Obsolete]
. Ayrıca, kırpılmayan uygulamalarda, bu yöntemlerin özel durum tabanlı davranışları bazen çağıranları şaşırtır ve iyi bilinen tanımlayıcıların çoğu kendileri olarak işaretlenmiş [Obsolete]
türlerle ilişkilendirilir.
Geçici çözüm
Sabit bir dize geçiren çağrılar parametresiz fabrika yöntemine veya uygun türü oluşturmak için güçlü bir çağrıya değiştirilmelidir. Örneğin, çağrısı Aes.Create("AES")
veya new AesCryptoServiceProvider()
ile Aes.Create()
değiştirilebilir. Türü de işaretlendiğinden AesCryptoServiceProvider[Obsolete]
Aes.Create()
, tercih edilen değişimdir.
Sabit olmayan bir dize geçiren çağrılar kendi arama tablosunu kullanabilir veya doğrudan çağrı CryptoConfig.CreateFromName yapmak için değiştirilebilir.
Uyarıyı gizleme
Eski API'leri kullanmanız gerekiyorsa, uyarıyı kodda veya proje dosyanızda gizleyebilirsiniz.
Yalnızca tek bir ihlali engellemek için, önişlemci yönergelerini kaynak dosyanıza ekleyerek uyarıyı devre dışı bırakın ve sonra yeniden etkinleştirin.
// Disable the warning.
#pragma warning disable SYSLIB0045
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0045
Projenizdeki tüm SYSLIB0045
uyarıları engellemek için proje dosyanıza bir <NoWarn>
özellik ekleyin.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0045</NoWarn>
</PropertyGroup>
</Project>
Daha fazla bilgi için bkz . Uyarıları gizleme.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin