Kedaluwarsa API dengan ID diagnostik non-default (.NET 6)
Beberapa API telah ditandai sebagai usang, mulai dari .NET 6. Perubahan yang melanggar ini khusus untuk API yang telah ditandai sebagai kedaluwarsa dengan ID diagnostik kustom. Menekan ID diagnostik usang default, yaitu CS0618 untuk kompilator C#, tidak menekan peringatan yang dihasilkan oleh kompilator saat API ini digunakan.
Deskripsi perubahan
Di versi .NET sebelumnya, API ini dapat digunakan tanpa peringatan pembangunan apa pun. Dalam .NET 6 dan versi yang lebih baru, penggunaan API ini menghasilkan peringatan atau kesalahan waktu kompilasi dengan ID diagnostik kustom. Penggunaan ID diagnostik kustom memungkinkan Anda menyembunyikan peringatan usang satu per satu, bukan menyembunyikan semua peringatan usang.
Tabel berikut mencantumkan ID diagnostik kustom dan pesan peringatan terkait untuk API yang sudah kedaluwarsa.
ID diagnostik | Deskripsi | Tingkat keparahan |
---|---|---|
SYSLIB0013 | Uri.EscapeUriString(String) dapat merusak string URI dalam beberapa kasus. Pertimbangkan untuk menggunakan Uri.EscapeDataString(String) komponen string kueri sebagai gantinya. | Peringatan |
SYSLIB0014 | WebRequest, HttpWebRequest, ServicePoint, dan WebClient sudah usang. Gunakan HttpClient sebagai gantinya. | Peringatan |
SYSLIB0015 | DisablePrivateReflectionAttribute tidak berpengaruh pada .NET 6+. | Peringatan |
SYSLIB0016 | Gunakan overload Graphics.GetContextInfo yang menerima argumen untuk performa yang lebih baik dan alokasi yang lebih sedikit. | Peringatan |
SYSLIB0017 | Penandatanganan nama yang kuat tidak didukung dan melempar PlatformNotSupportedException. | Peringatan |
SYSLIB0018 | Pemuatan khusus refleksi tidak didukung dan melempar PlatformNotSupportedException. | Peringatan |
SYSLIB0019 | Anggota System.Runtime.InteropServices.RuntimeEnvironment, SystemConfigurationFile, GetRuntimeInterfaceAsIntPtr(Guid, Guid), dan GetRuntimeInterfaceAsObject(Guid, Guid) tidak lagi didukung dan dilempar PlatformNotSupportedException. | Peringatan |
SYSLIB0020 | JsonSerializerOptions.IgnoreNullValues sudah usang. Untuk mengabaikan nilai null saat membuat serialisasi, atur DefaultIgnoreCondition ke JsonIgnoreCondition.WhenWritingNull. | Peringatan |
SYSLIB0021 | Jenis kriptografi turunan sudah usang. sebagai gantinya, gunakan metode Create pada jenis dasar. |
Peringatan |
SYSLIB0022 | Jenis Rijndael dan RijndaelManaged sudah usang. Gunakan Aes sebagai gantinya. | Peringatan |
SYSLIB0023 | RNGCryptoServiceProvider sudah usang. Untuk menghasilkan angka acak, gunakan salah satu metode statis RandomNumberGeneratorsebagai gantinya. | Peringatan |
SYSLIB0024 | Membuat dan membongkar AppDomains tidak didukung dan melemparkan pengecualian. | Peringatan |
SYSLIB0025 | SuppressIldasmAttribute tidak berpengaruh pada .NET 6+. | Peringatan |
SYSLIB0026 | X509Certificate and X509Certificate2 tidak dapat diubah. Gunakan konstruktor yang sesuai untuk membuat sertifikat baru. | Peringatan |
SYSLIB0027 | PublicKey.Key sudah usang. Gunakan metode yang sesuai untuk mendapatkan kunci umum, seperti GetRSAPublicKey(). | Peringatan |
SYSLIB0028 | X509Certificate2.PrivateKey sudah usang. Gunakan metode yang sesuai untuk mendapatkan kunci privat, seperti RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2), atau gunakan X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) metode untuk membuat instans baru dengan kunci privat. | Peringatan |
SYSLIB0029 | ProduceLegacyHmacValues sudah usang. Menghasilkan nilai HMAC lama tidak lagi didukung. |
Peringatan |
SYSLIB0030 | HMACSHA1 selalu menggunakan implementasi algoritma yang disediakan oleh platform. Gunakan konstruktor tanpa parameter useManagedSha1 . |
Peringatan |
SYSLIB0031 | CryptoConfig.EncodeOID(String) sudah usang. Gunakan fungsionalitas ASN.1 yang disediakan di System.Formats.Asn1. | Peringatan |
SYSLIB0032 | Pemulihan dari pengecualian status proses yang rusak tidak didukung; HandleProcessCorruptedStateExceptionsAttribute diabaikan. | Peringatan |
SYSLIB0033 | Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) usang dan tidak didukung. Gunakan PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) sebagai gantinya. | Peringatan |
SYSLIB0034 | CmsSigner(CspParameters) sudah usang. Gunakan konstruktor alternatif sebagai gantinya. | Peringatan |
SYSLIB0035 | SignerInfo.ComputeCounterSignature() sudah usang. Gunakan kelebihan beban yang menerima CmsSigner sebagai gantinya. | Peringatan |
Versi yang diperkenalkan
.NET 6
Tindakan yang direkomendasikan
Ikuti panduan khusus yang diberikan untuk setiap ID diagnostik menggunakan tautan URL yang diberikan pada peringatan.
Peringatan atau kesalahan untuk kedaluwarsa ini tidak dapat disembunyikan menggunakan ID diagnostik standar untuk jenis atau anggota yang kedaluwarsa; gunakan nilai ID diagnostik
SYSLIBxxxx
kustom sebagai gantinya.
API yang Terpengaruh
SYSLIB0013
SYSLIB0014
SYSLIB0015
SYSLIB0016
SYSLIB0017
SYSLIB0018
- System.Reflection.Assembly.ReflectionOnlyLoad
- System.Reflection.Assembly.ReflectionOnlyLoadFrom(String)
- System.Type.ReflectionOnlyGetType(String, Boolean, Boolean)
SYSLIB0019
- System.Runtime.InteropServices.RuntimeEnvironment.SystemConfigurationFile
- System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeInterfaceAsIntPtr(Guid, Guid)
- System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeInterfaceAsObject(Guid, Guid)
SYSLIB0020
SYSLIB0021
- System.Security.Cryptography.AesCryptoServiceProvider
- System.Security.Cryptography.AesManaged
- System.Security.Cryptography.DESCryptoServiceProvider
- System.Security.Cryptography.MD5CryptoServiceProvider
- System.Security.Cryptography.RC2CryptoServiceProvider
- System.Security.Cryptography.SHA1CryptoServiceProvider
- System.Security.Cryptography.SHA1Managed
- System.Security.Cryptography.SHA256Managed
- System.Security.Cryptography.SHA256CryptoServiceProvider
- System.Security.Cryptography.SHA384Managed
- System.Security.Cryptography.SHA384CryptoServiceProvider
- System.Security.Cryptography.SHA512Managed
- System.Security.Cryptography.SHA512CryptoServiceProvider
- System.Security.Cryptography.TripleDESCryptoServiceProvider