API-niet-standaarddiagnose-id's (.NET 7)
Sommige API's zijn gemarkeerd als verouderd, te beginnen in .NET 7. Deze belangrijke wijziging is specifiek voor API's die zijn gemarkeerd als verouderd met een aangepaste diagnostische id. Het onderdrukken van de standaard diagnostische id voor obsoletion, die CS0618 is voor de C#-compiler, onderdrukt niet de waarschuwingen die de compiler genereert wanneer deze API's worden gebruikt.
Wijzigingsbeschrijving
In eerdere .NET-versies kunnen deze API's zonder buildwaarschuwing worden gebruikt. In .NET 7 en latere versies produceert het gebruik van deze API's een compileertijdwaarschuwing of -fout met een aangepaste diagnostische id. Met het gebruik van aangepaste diagnostische id's kunt u de verdoeiingswaarschuwingen afzonderlijk onderdrukken in plaats van alle verdoezelingswaarschuwingen.
De volgende tabel bevat de aangepaste diagnostische id's en de bijbehorende waarschuwingsberichten voor verouderde API's.
Diagnostische id | Beschrijving | Ernst |
---|---|---|
SYSLIB0036 | Regex.CompileToAssembly is verouderd en wordt niet ondersteund. Gebruik RegexGeneratorAttribute in plaats daarvan met de brongenerator voor reguliere expressies. |
Waarschuwing |
SYSLIB0037 | AssemblyName leden HashAlgorithm, ProcessorArchitectureen VersionCompatibility zijn verouderd en worden niet ondersteund. | Waarschuwing |
SYSLIB0038 | SerializationFormat.Binary is verouderd en mag niet worden gebruikt. | Waarschuwing |
SYSLIB0039 | TLS-versies 1.0 en 1.1 hebben bekende beveiligingsproblemen en worden niet aanbevolen. Gebruik in plaats daarvan een nieuwere TLS-versie of gebruik SslProtocols.None deze om de standaardinstellingen van het besturingssysteem uit te stellen. | Waarschuwing |
SYSLIB0040 | EncryptionPolicy.NoEncryption en EncryptionPolicy.AllowNoEncryption vermindert de beveiliging aanzienlijk en mag niet worden gebruikt in productiecode. | Waarschuwing |
SYSLIB0041 | Het standaard-hash-algoritme en iteratieaantallen in Rfc2898DeriveBytes constructors zijn verouderd en onveilig. Gebruik een constructor die het hash-algoritme en het aantal iteraties accepteert. | Waarschuwing |
SYSLIB0042 | ToXmlString en FromXmlString geen implementatie voor ECC-typen (elliptische curvecryptografie) hebben en verouderd zijn. Gebruik een standaardindeling voor importeren en exporteren, zoals ExportSubjectPublicKeyInfo of ImportSubjectPublicKeyInfo voor openbare sleutels en ExportPkcs8PrivateKey of ImportPkcs8PrivateKey voor persoonlijke sleutels. |
Waarschuwing |
SYSLIB0043 | ECDiffieHellmanPublicKey.ToByteArray() en de bijbehorende constructor heeft geen consistente en interoperabele implementatie op alle platforms. Gebruik in plaats daarvan ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo(). | Waarschuwing |
SYSLIB0044 | AssemblyName.CodeBase en AssemblyName.EscapedCodeBase zijn verouderd. | Waarschuwing |
SYSLIB0045 | Cryptografische factorymethoden die een algoritmenaam accepteren, zijn verouderd. Gebruik in plaats daarvan de parameterloze Create factorymethode voor het algoritmetype. |
Waarschuwing |
SYSLIB0047 | XmlSecureResolver is verouderd. Gebruik XmlResolver.ThrowingResolver in plaats daarvan om de resolutie van externe XML-resources te verbieden. |
Waarschuwing |
Versie geïntroduceerd
.NET 7
Type wijziging die fouten veroorzaken
Deze obsoletions kunnen van invloed zijn op de broncompatibiliteit.
Aanbevolen actie
Volg de specifieke richtlijnen voor elke diagnostische id met behulp van de URL-koppeling in de waarschuwing.
Waarschuwingen of fouten voor deze verdoezelingen kunnen niet worden onderdrukt met behulp van de standaarddiagnose-id voor verouderde typen of leden; gebruik in plaats daarvan de aangepaste diagnostische
SYSLIBxxxx
id-waarde.
Betrokken API's
SYSLIB0036
SYSLIB0037
SYSLIB0038
SYSLIB0039
SYSLIB0040
- System.Net.Security.EncryptionPolicy.AllowNoEncryption
- System.Net.Security.EncryptionPolicy.NoEncryption
SYSLIB0041
- Rfc2898DeriveBytes(String, Byte[])
- Rfc2898DeriveBytes(String, Int32)
- Rfc2898DeriveBytes(Byte[], Byte[], Int32)
- Rfc2898DeriveBytes(String, Byte[], Int32)
- Rfc2898DeriveBytes(String, Int32, Int32)
SYSLIB0042
- System.Security.Cryptography.ECDiffieHellmanCng.FromXmlString(String, ECKeyXmlFormat)
- System.Security.Cryptography.ECDiffieHellmanCng.ToXmlString(ECKeyXmlFormat)
- System.Security.Cryptography.ECDiffieHellmanCngPublicKey.FromXmlString(String)
- System.Security.Cryptography.ECDiffieHellmanCngPublicKey.ToXmlString()
- System.Security.Cryptography.ECDiffieHellmanPublicKey.ToXmlString()
- System.Security.Cryptography.ECDsaCng.FromXmlString(String, ECKeyXmlFormat)
- System.Security.Cryptography.ECDsaCng.ToXmlString(ECKeyXmlFormat)
SYSLIB0043
- System.Security.Cryptography.ECDiffieHellmanPublicKey.ToByteArray()
- ECDiffieHellmanPublicKey(Byte[])
SYSLIB0045
- System.Security.Cryptography.Aes.Create(String)
- System.Security.Cryptography.AsymmetricAlgorithm.Create(String)
- System.Security.Cryptography.DES.Create(String)
- System.Security.Cryptography.ECDiffieHellman.Create(String)
- System.Security.Cryptography.ECDsa.Create(String)
- System.Security.Cryptography.HashAlgorithm.Create(String)
- System.Security.Cryptography.KeyedHashAlgorithm.Create(String)
- System.Security.Cryptography.RandomNumberGenerator.Create(String)
- System.Security.Cryptography.RC2.Create(String)
- System.Security.Cryptography.Rijndael.Create(String)
- System.Security.Cryptography.RSA.Create(String)
- System.Security.Cryptography.SHA1.Create(String)
- System.Security.Cryptography.SHA256.Create(String)
- System.Security.Cryptography.SHA384.Create(String)
- System.Security.Cryptography.SHA512.Create(String)
- System.Security.Cryptography.SymmetricAlgorithm.Create(String)
- System.Security.Cryptography.TripleDES.Create(String)