Obsoletions rozhraní API s ne defaultním diagnostickým ID (.NET 7)
Některá rozhraní API byla označena jako zastaralá, počínaje verzí .NET 7. 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 7 a novějších verzích vytvoří použití těchto rozhraní API 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 |
---|---|---|
SYSLIB0036 | Regex.CompileToAssembly je zastaralý a nepodporuje se. Použijte RegexGeneratorAttribute místo toho generátor zdroje regulárních výrazů. |
Upozorňující |
SYSLIB0037 | AssemblyNameProcessorArchitecture, HashAlgorithma VersionCompatibility jsou zastaralé a nejsou podporovány. | Upozorňující |
SYSLIB0038 | SerializationFormat.Binary je zastaralý a neměl by se používat. | Upozorňující |
SYSLIB0039 | Protokol TLS verze 1.0 a 1.1 obsahují známá ohrožení zabezpečení a nedoporučuje se. Místo toho použijte novější verzi protokolu TLS nebo použijte SslProtocols.None k odložení výchozích hodnot operačního systému. | Upozorňující |
SYSLIB0040 | EncryptionPolicy.NoEncryption a EncryptionPolicy.AllowNoEncryption výrazně snížit zabezpečení a nemělo by se používat v produkčním kódu. | Upozorňující |
SYSLIB0041 | Výchozí algoritmus hash a počty iterací v Rfc2898DeriveBytes konstruktorech jsou zastaralé a nezabezpečené. Použijte konstruktor, který přijímá algoritmus hash a počet iterací. | Upozorňující |
SYSLIB0042 | ToXmlString a FromXmlString nemají žádnou implementaci pro typy kryptografie se třemi tečkami (ECC) a jsou zastaralé. Použijte standardní formát importu a exportu, jako ExportSubjectPublicKeyInfo je veřejný ImportSubjectPublicKeyInfo klíč nebo ExportPkcs8PrivateKey ImportPkcs8PrivateKey privátní klíče. |
Upozorňující |
SYSLIB0043 | ECDiffieHellmanPublicKey.ToByteArray() a přidružený konstruktor nemá konzistentní a interoperabilní implementaci na všech platformách. Místo toho použijte ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo(). | Upozorňující |
SYSLIB0044 | AssemblyName.CodeBase a AssemblyName.EscapedCodeBase jsou zastaralé. | Upozorňující |
SYSLIB0045 | Kryptografické metody továrny, které přijímají název algoritmu, jsou zastaralé. Místo toho použijte metodu bez parametrů Create objektu pro vytváření pro typ algoritmu. |
Upozorňující |
SYSLIB0047 | XmlSecureResolver je zastaralý. Místo toho se používá XmlResolver.ThrowingResolver k zakázání překladu externích prostředků XML. |
Upozorňující |
Zavedená verze
.NET 7
Typ zásadní změny
Tyto obsoletions můžou mít vliv na kompatibilitu zdroje.
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
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)