Bagikan melalui


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

  • 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

SYSLIB0019

SYSLIB0020

SYSLIB0021

SYSLIB0022

SYSLIB0023

SYSLIB0024

SYSLIB0025

SYSLIB0026

SYSLIB0027

SYSLIB0028

SYSLIB0029

SYSLIB0030

SYSLIB0031

SYSLIB0032

SYSLIB0033

SYSLIB0034

SYSLIB0035

Lihat juga