Verouderde functies in .NET 5+
Vanaf .NET 5 maken sommige API's die zojuist zijn gemarkeerd als verouderd, gebruik van twee nieuwe eigenschappen op ObsoleteAttribute.
De ObsoleteAttribute.DiagnosticId eigenschap vertelt de compiler om buildwaarschuwingen te genereren met behulp van een aangepaste diagnostische id. Met de aangepaste id kan een waarschuwing voor verdoezeling specifiek en afzonderlijk van elkaar worden onderdrukt. In het geval van de .NET 5+ obsoletions is de indeling voor de aangepaste diagnostische id
SYSLIB0XXX
.De ObsoleteAttribute.UrlFormat eigenschap vertelt de compiler om een URL-koppeling op te nemen voor meer informatie over de onzool.
Als er buildwaarschuwingen of -fouten optreden vanwege het gebruik van een verouderde API, volgt u de specifieke richtlijnen voor de diagnostische id die wordt vermeld in de sectie Naslaginformatie . Waarschuwingen of fouten voor deze verdoezelingen kunnen niet worden onderdrukt met behulp van de standaarddiagnose-id (CS0618) voor verouderde typen of leden. Gebruik in plaats daarvan de aangepaste diagnostische SYSLIB0XXX
id-waarden. Zie Waarschuwingen onderdrukken voor meer informatie.
Verwijzing
De volgende tabel bevat een index voor de SYSLIB0XXX
obsoletions in .NET 5+.
Diagnostische id | Waarschuwing of fout | Beschrijving |
---|---|---|
SYSLIB0001 | Waarschuwing | De UTF-7-codering is onveilig en mag niet worden gebruikt. Overweeg in plaats daarvan UTF-8 te gebruiken. |
SYSLIB0002 | Error | PrincipalPermissionAttribute wordt niet gehonoreerd door de runtime en mag niet worden gebruikt. |
SYSLIB0003 | Waarschuwing | Cas (Code Access Security) wordt niet ondersteund of gehonoreerd door de runtime. |
SYSLIB0004 | Waarschuwing | De functie voor de beperkte uitvoeringsregio (CER) wordt niet ondersteund. |
SYSLIB0005 | Waarschuwing | De algemene assemblycache (GAC) wordt niet ondersteund. |
SYSLIB0006 | Waarschuwing | Thread.Abort() wordt niet ondersteund en gooit PlatformNotSupportedException. |
SYSLIB0007 | Waarschuwing | De standaard implementatie van dit cryptografie-algoritme wordt niet ondersteund. |
SYSLIB0008 | Waarschuwing | De CreatePdbGenerator() API wordt niet ondersteund en genereert PlatformNotSupportedException. |
SYSLIB0009 | Waarschuwing | AuthenticationManager wordt niet ondersteund. Methoden zullen geen op- of gooien PlatformNotSupportedException. |
SYSLIB0010 | Waarschuwing | Sommige externe API's worden niet ondersteund en gooien PlatformNotSupportedException. |
SYSLIB0011 | Waarschuwing | BinaryFormatter serialisatie is verouderd en mag niet worden gebruikt. |
SYSLIB0012 | Waarschuwing | Assembly.CodeBase en Assembly.EscapedCodeBase zijn alleen opgenomen voor .NET Framework-compatibiliteit. Gebruik in plaats daarvan Assembly.Location. |
SYSLIB0013 | Waarschuwing | Uri.EscapeUriString(String) kan de URI-tekenreeks in sommige gevallen beschadigen. Overweeg in plaats daarvan queryreeksonderdelen te gebruiken Uri.EscapeDataString(String) . |
SYSLIB0014 | Waarschuwing | WebRequest, , HttpWebRequestServicePointen WebClient zijn verouderd. Gebruik in plaats daarvan HttpClient. |
SYSLIB0015 | Waarschuwing | DisablePrivateReflectionAttribute heeft geen effect in .NET 6+. |
SYSLIB0016 | Waarschuwing | Gebruik de Graphics.GetContextInfo overbelastingen die argumenten accepteren voor betere prestaties en minder toewijzingen. |
SYSLIB0017 | Waarschuwing | Ondertekening met sterke naam wordt niet ondersteund en genereert PlatformNotSupportedException. |
SYSLIB0018 | Waarschuwing | Laden met alleen weerspiegeling wordt niet ondersteund en werpt PlatformNotSupportedException. |
SYSLIB0019 | Waarschuwing | De System.Runtime.InteropServices.RuntimeEnvironment leden SystemConfigurationFile, GetRuntimeInterfaceAsIntPtr(Guid, Guid)en GetRuntimeInterfaceAsObject(Guid, Guid) worden niet meer ondersteund en gooien PlatformNotSupportedException. |
SYSLIB0020 | Waarschuwing | JsonSerializerOptions.IgnoreNullValues is verouderd. Als u null-waarden wilt negeren bij het serialiseren, stelt u deze in DefaultIgnoreCondition op JsonIgnoreCondition.WhenWritingNull. |
SYSLIB0021 | Waarschuwing | Afgeleide cryptografische typen zijn verouderd. Gebruik in plaats daarvan de Create methode op het basistype. |
SYSLIB0022 | Waarschuwing | De Rijndael en RijndaelManaged typen zijn verouderd. Gebruik in plaats daarvan Aes. |
SYSLIB0023 | Waarschuwing | RNGCryptoServiceProvider is verouderd. Als u een willekeurig getal wilt genereren, gebruikt u in plaats daarvan een van de RandomNumberGenerator statische methoden. |
SYSLIB0024 | Waarschuwing | Het maken en lossen van AppDomains wordt niet ondersteund en genereert een uitzondering. |
SYSLIB0025 | Waarschuwing | SuppressIldasmAttribute heeft geen effect in .NET 6+. |
SYSLIB0026 | Waarschuwing | X509Certificate en X509Certificate2 onveranderbaar zijn. Gebruik de juiste constructor om een nieuw certificaat te maken. |
SYSLIB0027 | Waarschuwing | PublicKey.Key is verouderd. Gebruik de juiste methode om de openbare sleutel op te halen, zoals GetRSAPublicKey(). |
SYSLIB0028 | Waarschuwing | X509Certificate2.PrivateKey is verouderd. Gebruik de juiste methode om de persoonlijke sleutel op te halen, zoals RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2)of gebruik de X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) methode om een nieuw exemplaar met een persoonlijke sleutel te maken. |
SYSLIB0029 | Waarschuwing | ProduceLegacyHmacValues is verouderd. Het produceren van verouderde HMAC-waarden wordt niet meer ondersteund. |
SYSLIB0030 | Waarschuwing | HMACSHA1 maakt altijd gebruik van de algoritme-implementatie die door het platform wordt geleverd. Gebruik een constructor zonder de useManagedSha1 parameter. |
SYSLIB0031 | Waarschuwing | CryptoConfig.EncodeOID(String) is verouderd. Gebruik de asn.1-functionaliteit die beschikbaar is in System.Formats.Asn1. |
SYSLIB0032 | Waarschuwing | Herstel van beschadigde processtatusuitzondering wordt niet ondersteund; HandleProcessCorruptedStateExceptionsAttribute wordt genegeerd. |
SYSLIB0033 | Waarschuwing | Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) is verouderd en wordt niet ondersteund. Gebruik in plaats daarvan PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]). |
SYSLIB0034 | Waarschuwing | CmsSigner(CspParameters) is verouderd. Gebruik in plaats daarvan een alternatieve constructor. |
SYSLIB0035 | Waarschuwing | SignerInfo.ComputeCounterSignature() is verouderd. Gebruik de overbelasting die een CmsSigner in plaats daarvan accepteert. |
SYSLIB0036 | Waarschuwing | Regex.CompileToAssembly is verouderd en wordt niet ondersteund. Gebruik RegexGeneratorAttribute in plaats daarvan met de brongenerator voor reguliere expressies. |
SYSLIB0037 | Waarschuwing | AssemblyName leden HashAlgorithm, ProcessorArchitectureen VersionCompatibility zijn verouderd en worden niet ondersteund. |
SYSLIB0038 | Waarschuwing | SerializationFormat.Binary is verouderd en mag niet worden gebruikt. |
SYSLIB0039 | Waarschuwing | 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. |
SYSLIB0040 | Waarschuwing | EncryptionPolicy.NoEncryption en EncryptionPolicy.AllowNoEncryption vermindert de beveiliging aanzienlijk en mag niet worden gebruikt in productiecode. |
SYSLIB0041 | Waarschuwing | 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. |
SYSLIB0042 | Waarschuwing | 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. |
SYSLIB0043 | Waarschuwing | ECDiffieHellmanPublicKey.ToByteArray() en de bijbehorende constructor heeft geen consistente en interoperabele implementatie op alle platforms. Gebruik in plaats daarvan ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo(). |
SYSLIB0044 | Waarschuwing | AssemblyName.CodeBase en AssemblyName.EscapedCodeBase zijn verouderd. Het gebruik ervan voor het laden van een assembly wordt niet ondersteund. |
SYSLIB0045 | Waarschuwing | Cryptografische factorymethoden die een algoritmenaam accepteren, zijn verouderd. Gebruik in plaats daarvan de parameterloze Create factorymethode voor het algoritmetype. |
SYSLIB0046 | Waarschuwing | De ControlledExecution.Run(Action, CancellationToken) methode kan het proces beschadigen en mag niet worden gebruikt in productiecode. |
SYSLIB0047 | Waarschuwing | XmlSecureResolver is verouderd. Gebruik XmlResolver.ThrowingResolver in plaats daarvan wanneer u probeert de omzetting van externe XML-entiteiten te verbieden. |
SYSLIB0048 | Waarschuwing | RSA.EncryptValue(Byte[]) en RSA.DecryptValue(Byte[]) zijn verouderd. Gebruik RSA.Encrypt en RSA.Decrypt in plaats daarvan. |
SYSLIB0049 | Waarschuwing | JsonSerializerOptions.AddContext is verouderd. Als u een JsonSerializerContext wilt registreren, gebruikt u de eigenschap TypeInfoResolver of TypeInfoResolverChain. |
SYSLIB0050 | Waarschuwing | Serialisatie op basis van formatter is verouderd en mag niet worden gebruikt. |
SYSLIB0051 | Waarschuwing | API's die verouderde serialisatie op basis van formatter ondersteunen, zijn verouderd. Ze mogen niet worden aangeroepen of uitgebreid met toepassingscode. |
SYSLIB0052 | Waarschuwing | API's die verouderde mechanismen voor regex-uitbreidbaarheid ondersteunen, zijn verouderd. |
SYSLIB0053 | Waarschuwing | AesGcm moet de vereiste taggrootte voor versleuteling en ontsleuteling aangeven. Gebruik een constructor die de taggrootte accepteert. |
SYSLIB0054 | Waarschuwing | Thread.VolatileRead en Thread.VolatileWrite zijn verouderd. Gebruik Volatile.Read of Volatile.Write in plaats daarvan. |
SYSLIB0055 | Waarschuwing | AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate* methoden met ondertekende parameters zijn verouderd. Gebruik in plaats daarvan de niet-ondertekende overbelastingen. |
SYSLIB0056 | Waarschuwing | Assembly.LoadFrom met een aangepaste AssemblyHashAlgorithm is verouderd. Gebruik overbelastingen zonder een AssemblyHashAlgorithm . |
SYSLIB0057 | Waarschuwing | X509Certificate2 en X509Certificate constructors voor binaire en bestandsinhoud zijn verouderd. |
Waarschuwingen onderdrukken
Het is raadzaam om waar mogelijk een beschikbare tijdelijke oplossing te gebruiken. Als u uw code echter niet kunt wijzigen, kunt u waarschuwingen onderdrukken via een #pragma
instructie of een <NoWarn>
projectinstelling. Als u de verouderde API's moet gebruiken en de SYSLIB0XXX
diagnose niet als een fout wordt weergegeven, kunt u de waarschuwing in code of in het projectbestand onderdrukken.
De waarschuwingen in code onderdrukken:
// Disable the warning.
#pragma warning disable SYSLIB0001
// Code that uses obsolete API.
//...
// Re-enable the warning.
#pragma warning restore SYSLIB0001
De waarschuwingen in een projectbestand onderdrukken:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<!-- NoWarn below suppresses SYSLIB0001 project-wide -->
<NoWarn>$(NoWarn);SYSLIB0001</NoWarn>
<!-- To suppress multiple warnings, you can use multiple NoWarn elements -->
<NoWarn>$(NoWarn);SYSLIB0002</NoWarn>
<NoWarn>$(NoWarn);SYSLIB0003</NoWarn>
<!-- Alternatively, you can suppress multiple warnings by using a semicolon-delimited list -->
<NoWarn>$(NoWarn);SYSLIB0001;SYSLIB0002;SYSLIB0003</NoWarn>
</PropertyGroup>
</Project>
Notitie
Als u waarschuwingen op deze manier onderdrukt, worden alleen de inlegwaarschuwingen uitgeschakeld die u opgeeft. Er worden geen andere waarschuwingen uitgeschakeld, waaronder obsoletion-waarschuwingen met verschillende diagnostische id's.