Obsoletions api with non-default diagnostic ID (.NET 6)
Některá rozhraní API byla označena jako zastaralá, počínaje verzí .NET 6. Tato změna způsobující chybu je specifická pro rozhraní API, která byla označena jako zastaralá pomocí vlastního diagnostického ID. Potlačení výchozího ID diagnostiky obsoletion, což je CS0618 pro kompilátor jazyka C#, nepotlačí upozornění, že kompilátor generuje při použití těchto rozhraní API.
Změna popisu
V předchozích verzích .NET je možné tato rozhraní API použít bez upozornění na sestavení. V .NET 6 a novějších verzích použití těchto rozhraní API vytvoří upozornění na dobu kompilace nebo chybu s vlastním ID diagnostiky. Použití vlastních diagnostických ID umožňuje potlačit upozornění obsoletion jednotlivě místo deka potlačování všech upozornění na obsoletion.
Následující tabulka uvádí vlastní ID diagnostiky a jejich odpovídající zprávy upozornění pro zastaralá rozhraní API.
ID diagnostiky | Popis | Závažnost |
---|---|---|
SYSLIB0013 | Uri.EscapeUriString(String) může v některých případech poškodit řetězec identifikátoru URI. Místo toho zvažte použití Uri.EscapeDataString(String) pro komponenty řetězce dotazu. | Upozorňující |
SYSLIB0014 | WebRequest, HttpWebRequesta ServicePointWebClient jsou zastaralé. Místo toho použijte HttpClient. | Upozorňující |
SYSLIB0015 | DisablePrivateReflectionAttribute nemá žádný vliv na .NET 6 nebo novější. | Upozorňující |
SYSLIB0016 | Graphics.GetContextInfo Použijte přetížení, která přijímají argumenty pro lepší výkon a méně přidělení. | Upozorňující |
SYSLIB0017 | Podepisování silného názvu není podporováno a vyvolá PlatformNotSupportedExceptionse . | Upozorňující |
SYSLIB0018 | Načítání pouze reflexe není podporováno a vyvolá PlatformNotSupportedException. | Upozorňující |
SYSLIB0019 | Členové SystemConfigurationFileSystem.Runtime.InteropServices.RuntimeEnvironment , GetRuntimeInterfaceAsIntPtr(Guid, Guid)a GetRuntimeInterfaceAsObject(Guid, Guid) již nejsou podporovány a vyvolání PlatformNotSupportedException. | Upozorňující |
SYSLIB0020 | JsonSerializerOptions.IgnoreNullValues je zastaralý. Pokud chcete při serializaci ignorovat hodnoty null, nastavte DefaultIgnoreCondition hodnotu JsonIgnoreCondition.WhenWritingNull. | Upozorňující |
SYSLIB0021 | Odvozené kryptografické typy jsou zastaralé. Místo toho použijte metodu Create základního typu. |
Upozorňující |
SYSLIB0022 | Typy Rijndael jsou RijndaelManaged zastaralé. Místo toho použijte Aes. | Upozorňující |
SYSLIB0023 | RNGCryptoServiceProvider je zastaralý. Pokud chcete vygenerovat náhodné číslo, použijte místo toho jednu ze statických RandomNumberGenerator metod. | Upozorňující |
SYSLIB0024 | Vytváření a uvolňování domén AppDomains není podporováno a vyvolá výjimku. | Upozorňující |
SYSLIB0025 | SuppressIldasmAttribute nemá žádný vliv na .NET 6 nebo novější. | Upozorňující |
SYSLIB0026 | X509Certificate a X509Certificate2 jsou neměnné. Pomocí příslušného konstruktoru vytvořte nový certifikát. | Upozorňující |
SYSLIB0027 | PublicKey.Key je zastaralý. Pomocí příslušné metody získejte veřejný klíč, například GetRSAPublicKey(). | Upozorňující |
SYSLIB0028 | X509Certificate2.PrivateKey je zastaralý. Použijte příslušnou metodu k získání privátního klíče, například RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2), nebo použijte metodu X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) k vytvoření nové instance s privátním klíčem. | Upozorňující |
SYSLIB0029 | ProduceLegacyHmacValues je zastaralý. Vytváření starších hodnot HMAC se už nepodporuje. |
Upozorňující |
SYSLIB0030 | HMACSHA1 vždy používá implementaci algoritmu poskytovanou platformou. Použijte konstruktor bez parametru useManagedSha1 . |
Upozorňující |
SYSLIB0031 | CryptoConfig.EncodeOID(String) je zastaralý. Použijte funkci ASN.1, která je součástí System.Formats.Asn1. | Upozorňující |
SYSLIB0032 | Obnovení z výjimek stavu poškozeného procesu není podporováno; HandleProcessCorruptedStateExceptionsAttribute se ignoruje. | Upozorňující |
SYSLIB0033 | Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) je zastaralý a nepodporuje se. Místo toho použijte PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]). | Upozorňující |
SYSLIB0034 | CmsSigner(CspParameters) je zastaralý. Místo toho použijte alternativní konstruktor. | Upozorňující |
SYSLIB0035 | SignerInfo.ComputeCounterSignature() je zastaralý. Použijte přetížení, které místo toho přijme CmsSigner . | Upozorňující |
Zavedená verze
.NET 6
Doporučená akce
Postupujte podle konkrétních pokynů uvedených pro každé ID diagnostiky pomocí odkazu url uvedeného v upozornění.
Upozornění nebo chyby pro tyto obsoletions nelze potlačit pomocí standardního ID diagnostiky pro zastaralé typy nebo členy; místo toho použijte vlastní
SYSLIBxxxx
hodnotu ID diagnostiky.
Ovlivněná rozhraní API
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