Udostępnij za pośrednictwem


Obsoletions interfejsu API z nie domyślnymi identyfikatorami diagnostycznymi (.NET 6)

Niektóre interfejsy API zostały oznaczone jako przestarzałe, począwszy od platformy .NET 6. Ta zmiana powodująca niezgodność jest specyficzna dla interfejsów API, które zostały oznaczone jako przestarzałe przy użyciu niestandardowego identyfikatora diagnostycznego. Pomijanie domyślnego identyfikatora diagnostycznego obsoletion, który jest CS0618 dla kompilatora języka C#, nie pomija ostrzeżeń generowanych przez kompilator podczas użycia tych interfejsów API.

Opis zmiany

W poprzednich wersjach platformy .NET te interfejsy API mogą być używane bez żadnego ostrzeżenia dotyczącego kompilacji. W wersjach .NET 6 i nowszych użycie tych interfejsów API powoduje wygenerowanie ostrzeżenia lub błędu w czasie kompilacji z niestandardowym identyfikatorem diagnostycznym. Użycie niestandardowych identyfikatorów diagnostycznych umożliwia pomijanie ostrzeżeń dotyczących obsoletion indywidualnie zamiast pomijania wszystkich ostrzeżeń dotyczących obsoletionu.

W poniższej tabeli wymieniono niestandardowe identyfikatory diagnostyczne i odpowiadające im komunikaty ostrzegawcze dla przestarzałych interfejsów API.

Identyfikator diagnostyczny opis Waga błędu
SYSLIB0013 Uri.EscapeUriString(String) w niektórych przypadkach może uszkodzić ciąg identyfikatora URI. Zamiast tego rozważ użycie Uri.EscapeDataString(String) składników ciągu zapytania. Ostrzeżenie
SYSLIB0014 WebRequest, , HttpWebRequestServicePointi WebClient są przestarzałe. Użycie w zamian parametru HttpClient. Ostrzeżenie
SYSLIB0015 DisablePrivateReflectionAttribute nie ma wpływu na platformę .NET 6+. Ostrzeżenie
SYSLIB0016 Graphics.GetContextInfo Użyj przeciążeń, które akceptują argumenty w celu uzyskania lepszej wydajności i mniejszej liczby alokacji. Ostrzeżenie
SYSLIB0017 Podpisywanie silnej nazwy nie jest obsługiwane i zgłasza błąd PlatformNotSupportedException. Ostrzeżenie
SYSLIB0018 Ładowanie tylko odbicia nie jest obsługiwane i zgłasza błąd PlatformNotSupportedException. Ostrzeżenie
SYSLIB0019 Członkowie System.Runtime.InteropServices.RuntimeEnvironment , GetRuntimeInterfaceAsIntPtr(Guid, Guid)i GetRuntimeInterfaceAsObject(Guid, Guid) nie są już obsługiwane i zgłaszają wartość PlatformNotSupportedException.SystemConfigurationFile Ostrzeżenie
SYSLIB0020 JsonSerializerOptions.IgnoreNullValues jest przestarzały. Aby zignorować wartości null podczas serializacji, ustaw wartość DefaultIgnoreCondition JsonIgnoreCondition.WhenWritingNull. Ostrzeżenie
SYSLIB0021 Pochodne typy kryptograficzne są przestarzałe. Create Zamiast tego użyj metody w typie podstawowym. Ostrzeżenie
SYSLIB0022 Typy Rijndael i RijndaelManaged są przestarzałe. Użycie w zamian parametru Aes. Ostrzeżenie
SYSLIB0023 RNGCryptoServiceProvider jest przestarzały. Aby wygenerować liczbę losową, użyj jednej z metod statycznych RandomNumberGenerator . Ostrzeżenie
SYSLIB0024 Tworzenie i zwalnianie domen aplikacji nie jest obsługiwane i zgłasza wyjątek. Ostrzeżenie
SYSLIB0025 SuppressIldasmAttribute nie ma wpływu na platformę .NET 6+. Ostrzeżenie
SYSLIB0026 X509Certificate i X509Certificate2 są niezmienne. Użyj odpowiedniego konstruktora, aby utworzyć nowy certyfikat. Ostrzeżenie
SYSLIB0027 PublicKey.Key jest przestarzały. Użyj odpowiedniej metody, aby uzyskać klucz publiczny, taki jak GetRSAPublicKey(). Ostrzeżenie
SYSLIB0028 X509Certificate2.PrivateKey jest przestarzały. Użyj odpowiedniej metody, aby uzyskać klucz prywatny, taki jak RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2), lub użyj X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) metody , aby utworzyć nowe wystąpienie z kluczem prywatnym. Ostrzeżenie
SYSLIB0029 ProduceLegacyHmacValues jest przestarzały. Tworzenie starszych wartości HMAC nie jest już obsługiwane. Ostrzeżenie
SYSLIB0030 HMACSHA1 zawsze używa implementacji algorytmu udostępnianej przez platformę. Użyj konstruktora bez parametru useManagedSha1 . Ostrzeżenie
SYSLIB0031 CryptoConfig.EncodeOID(String) jest przestarzały. Użyj funkcji ASN.1 podanej w pliku System.Formats.Asn1. Ostrzeżenie
SYSLIB0032 Odzyskiwanie po uszkodzonych wyjątkach stanu procesu nie jest obsługiwane; HandleProcessCorruptedStateExceptionsAttribute jest ignorowany. Ostrzeżenie
SYSLIB0033 Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) jest przestarzały i nie jest obsługiwany. Użycie w zamian parametru PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]). Ostrzeżenie
SYSLIB0034 CmsSigner(CspParameters) jest przestarzały. Zamiast tego użyj alternatywnego konstruktora. Ostrzeżenie
SYSLIB0035 SignerInfo.ComputeCounterSignature() jest przestarzały. Użyj przeciążenia, które akceptuje zamiast tego CmsSigner . Ostrzeżenie

Wprowadzona wersja

.NET 6

  • Postępuj zgodnie z określonymi wskazówkami podanymi dla każdego identyfikatora diagnostycznego przy użyciu linku adresu URL podanego w ostrzeżeniu.

  • Ostrzeżenia lub błędy dla tych obsoletions nie mogą być pomijane przy użyciu standardowego identyfikatora diagnostycznego dla przestarzałych typów lub elementów członkowskich; Zamiast tego użyj niestandardowej SYSLIBxxxx wartości identyfikatora diagnostycznego.

Dotyczy interfejsów API

SYSLIB0013

SYSLIB0014

SYSLIB0015

SYSLIB0016

SYSLIB0017

SYSLIB0018

SYSLIB0019

SYSLIB0020

SYSLIB0021

SYSLIB0022

SYSLIB0023

SYSLIB0024

SYSLIB0025

SYSLIB0026

SYSLIB0027

SYSLIB0028

SYSLIB0029

SYSLIB0030

SYSLIB0031

SYSLIB0032

SYSLIB0033

SYSLIB0034

SYSLIB0035

Zobacz też