Obsolações de API com IDs de diagnóstico não padrão (.NET 6)
Algumas APIs foram marcadas como obsoletas, começando no .NET 6. Essa alteração de quebra é específica para APIs que foram marcadas como obsoletas com uma ID de diagnóstico personalizada. Suprimir a ID de diagnóstico de obsolescência padrão, que é CS0618 para o compilador C#, não suprime os avisos que o compilador gera quando essas APIs são usadas.
Alterar a descrição
Em versões anteriores do .NET, essas APIs podem ser usadas sem qualquer aviso de compilação. No .NET 6 e versões posteriores, o uso dessas APIs produz um aviso ou erro em tempo de compilação com uma ID de diagnóstico personalizada. O uso de IDs de diagnóstico personalizados permite suprimir os avisos de obsolescência individualmente, em vez de suprimir todos os avisos de obsolescência.
A tabela a seguir lista as IDs de diagnóstico personalizadas e suas mensagens de aviso correspondentes para APIs obsoletas.
ID de diagnóstico | Description | Gravidade |
---|---|---|
SYSLIB0013 | Uri.EscapeUriString(String) pode corromper a cadeia de caracteres URI em alguns casos. Em vez disso, considere usar Uri.EscapeDataString(String) para componentes de cadeia de caracteres de consulta. | Aviso |
SYSLIB0014 | WebRequest, HttpWebRequest, ServicePoint, e WebClient são obsoletas. Utilize HttpClient em substituição. | Aviso |
SYSLIB0015 | DisablePrivateReflectionAttribute não tem efeito no .NET 6+. | Aviso |
SYSLIB0016 | Use as Graphics.GetContextInfo sobrecargas que aceitam argumentos para um melhor desempenho e menos alocações. | Aviso |
SYSLIB0017 | A assinatura de nome forte não é suportada PlatformNotSupportedExceptione lança . | Aviso |
SYSLIB0018 | O carregamento somente reflexo não é suportado PlatformNotSupportedExceptione lança . | Aviso |
SYSLIB0019 | Os System.Runtime.InteropServices.RuntimeEnvironment membros SystemConfigurationFile, GetRuntimeInterfaceAsIntPtr(Guid, Guid)e GetRuntimeInterfaceAsObject(Guid, Guid) não são mais apoiados e lançam PlatformNotSupportedException. | Aviso |
SYSLIB0020 | JsonSerializerOptions.IgnoreNullValues está obsoleta. Para ignorar valores nulos durante a serialização, defina DefaultIgnoreCondition como JsonIgnoreCondition.WhenWritingNull. | Aviso |
SYSLIB0021 | Os tipos criptográficos derivados são obsoletos. Em vez disso, use o Create método no tipo base. |
Aviso |
SYSLIB0022 | Os Rijndael e RijndaelManaged tipos são obsoletos. Utilize Aes em substituição. | Aviso |
SYSLIB0023 | RNGCryptoServiceProvider está obsoleta. Para gerar um número aleatório, use um dos RandomNumberGenerator métodos estáticos. | Aviso |
SYSLIB0024 | A criação e descarregamento de AppDomains não é suportada e gera uma exceção. | Aviso |
SYSLIB0025 | SuppressIldasmAttribute não tem efeito no .NET 6+. | Aviso |
SYSLIB0026 | X509Certificate e X509Certificate2 são imutáveis. Use o construtor apropriado para criar um novo certificado. | Aviso |
SYSLIB0027 | PublicKey.Key está obsoleta. Use o método apropriado para obter a chave pública, como GetRSAPublicKey(). | Aviso |
SYSLIB0028 | X509Certificate2.PrivateKey está obsoleta. Use o método apropriado para obter a chave privada, como RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2), ou use o X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) método para criar uma nova instância com uma chave privada. | Aviso |
SYSLIB0029 | ProduceLegacyHmacValues está obsoleta. A produção de valores HMAC herdados não é mais suportada. |
Aviso |
SYSLIB0030 | HMACSHA1 utiliza sempre a implementação do algoritmo fornecido pela plataforma. Use um construtor sem o useManagedSha1 parâmetro. |
Aviso |
SYSLIB0031 | CryptoConfig.EncodeOID(String) está obsoleta. Use a funcionalidade ASN.1 fornecida em System.Formats.Asn1. | Aviso |
SYSLIB0032 | Não há suporte para recuperação de exceções de estado de processo corrompido; HandleProcessCorruptedStateExceptionsAttribute é ignorada. | Aviso |
SYSLIB0033 | Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) é obsoleta e não é suportada. Utilize PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) em substituição. | Aviso |
SYSLIB0034 | CmsSigner(CspParameters) está obsoleta. Use um construtor alternativo em vez disso. | Aviso |
SYSLIB0035 | SignerInfo.ComputeCounterSignature() está obsoleta. Use a sobrecarga que aceita um CmsSigner em vez disso. | Aviso |
Versão introduzida
.NET 6
Ação recomendada
Siga as orientações específicas fornecidas para cada ID de diagnóstico usando o link de URL fornecido no aviso.
Avisos ou erros para essas obsolescências não podem ser suprimidos usando o ID de diagnóstico padrão para tipos ou membros obsoletos; em vez disso, use o valor de ID de diagnóstico personalizado
SYSLIBxxxx
.
APIs afetadas
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