Föråldrade funktioner i .NET 5+
Från och med .NET 5 använder vissa API:er som nyligen har markerats som föråldrade två nya egenskaper på ObsoleteAttribute.
Egenskapen ObsoleteAttribute.DiagnosticId instruerar kompilatorn att generera byggvarningar med hjälp av ett anpassat diagnostik-ID. Med det anpassade ID:t kan obsoletionsvarningar ignoreras specifikt och separat från varandra. När det gäller .NET 5+ obsoletioner är
SYSLIB0XXX
formatet för det anpassade diagnostik-ID:t .Egenskapen ObsoleteAttribute.UrlFormat instruerar kompilatorn att inkludera en URL-länk för att lära sig mer om obsoletionen.
Om du får kompileringsvarningar eller -fel på grund av användning av ett föråldrat API följer du den specifika vägledningen för diagnostik-ID:t som anges i avsnittet Referens . Varningar eller fel för dessa obsoletioner kan inte ignoreras med hjälp av standarddiagnostik-ID (CS0618) för föråldrade typer eller medlemmar. Använd anpassade SYSLIB0XXX
diagnostik-ID-värden i stället. Mer information finns i Utelämna varningar.
Referens
Följande tabell innehåller ett index för SYSLIB0XXX
obsoletionerna i .NET 5+.
Diagnostik-ID | Varning eller fel | beskrivning |
---|---|---|
SYSLIB0001 | Varning | UTF-7-kodningen är osäker och bör inte användas. Överväg att använda UTF-8 i stället. |
SYSLIB0002 | Fel | PrincipalPermissionAttribute respekteras inte av körningen och får inte användas. |
SYSLIB0003 | Varning | Kodåtkomstsäkerhet (CAS) stöds inte eller respekteras inte av körningen. |
SYSLIB0004 | Varning | Funktionen för begränsad körningsregion (CER) stöds inte. |
SYSLIB0005 | Varning | Den globala sammansättningscache (GAC) stöds inte. |
SYSLIB0006 | Varning | Thread.Abort() stöds inte och genererar PlatformNotSupportedException. |
SYSLIB0007 | Varning | Standardimplementeringen av den här kryptografialgoritmen stöds inte. |
SYSLIB0008 | Varning | API:et CreatePdbGenerator() stöds inte och genererar PlatformNotSupportedException. |
SYSLIB0009 | Varning | AuthenticationManager stöds inte. Metoderna no-op eller genererar PlatformNotSupportedException. |
SYSLIB0010 | Varning | Vissa fjärrkommunikations-API:er stöds inte och genererar PlatformNotSupportedExceptioninte . |
SYSLIB0011 | Varning | BinaryFormatter serialisering är föråldrad och bör inte användas. |
SYSLIB0012 | Varning | Assembly.CodeBase och Assembly.EscapedCodeBase ingår endast för .NET Framework-kompatibilitet. Använd Assembly.Location i stället. |
SYSLIB0013 | Varning | Uri.EscapeUriString(String) kan skada URI-strängen i vissa fall. Överväg att använda Uri.EscapeDataString(String) för frågesträngskomponenter i stället. |
SYSLIB0014 | Varning | WebRequest, HttpWebRequest, ServicePointoch WebClient är föråldrade. Använd HttpClient i stället. |
SYSLIB0015 | Varning | DisablePrivateReflectionAttribute har ingen effekt i .NET 6+. |
SYSLIB0016 | Varning | Använd de Graphics.GetContextInfo överlagringar som accepterar argument för bättre prestanda och färre allokeringar. |
SYSLIB0017 | Varning | Stark namnsignering stöds inte och genererar PlatformNotSupportedException. |
SYSLIB0018 | Varning | Endast reflektionsinläsning stöds inte och genererar PlatformNotSupportedException. |
SYSLIB0019 | Varning | Medlemmarna System.Runtime.InteropServices.RuntimeEnvironmentSystemConfigurationFile, GetRuntimeInterfaceAsIntPtr(Guid, Guid)och GetRuntimeInterfaceAsObject(Guid, Guid) stöds inte längre och genererar PlatformNotSupportedException. |
SYSLIB0020 | Varning | JsonSerializerOptions.IgnoreNullValues är föråldrad. Om du vill ignorera null-värden vid serialisering anger du DefaultIgnoreCondition till JsonIgnoreCondition.WhenWritingNull. |
SYSLIB0021 | Varning | Härledda kryptografiska typer är föråldrade.
Create Använd metoden på bastypen i stället. |
SYSLIB0022 | Varning | Typerna Rijndael och RijndaelManaged är föråldrade. Använd Aes i stället. |
SYSLIB0023 | Varning | RNGCryptoServiceProvider är föråldrad. Om du vill generera ett slumpmässigt tal använder du en av de RandomNumberGenerator statiska metoderna i stället. |
SYSLIB0024 | Varning | Det går inte att skapa och ta bort AppDomains och genererar ett undantag. |
SYSLIB0025 | Varning | SuppressIldasmAttribute har ingen effekt i .NET 6+. |
SYSLIB0026 | Varning | X509Certificate och X509Certificate2 är oföränderliga. Använd lämplig konstruktor för att skapa ett nytt certifikat. |
SYSLIB0027 | Varning | PublicKey.Key är föråldrad. Använd lämplig metod för att hämta den offentliga nyckeln, till exempel GetRSAPublicKey(). |
SYSLIB0028 | Varning | X509Certificate2.PrivateKey är föråldrad. Använd lämplig metod för att hämta den privata nyckeln, till exempel RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2), eller använd X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) metoden för att skapa en ny instans med en privat nyckel. |
SYSLIB0029 | Varning |
ProduceLegacyHmacValues är föråldrad. Det går inte längre att skapa äldre HMAC-värden. |
SYSLIB0030 | Varning |
HMACSHA1 använder alltid den algoritmimplementering som tillhandahålls av plattformen. Använd en konstruktor utan parametern useManagedSha1 . |
SYSLIB0031 | Varning | CryptoConfig.EncodeOID(String) är föråldrad. Använd ASN.1-funktionerna i System.Formats.Asn1. |
SYSLIB0032 | Varning | Återställning från skadade processtillståndsfel stöds inte. HandleProcessCorruptedStateExceptionsAttribute ignoreras. |
SYSLIB0033 | Varning | Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) är föråldrad och stöds inte. Använd PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) i stället. |
SYSLIB0034 | Varning | CmsSigner(CspParameters) är föråldrad. Använd en alternativ konstruktor i stället. |
SYSLIB0035 | Varning | SignerInfo.ComputeCounterSignature() är föråldrad. Använd den överlagring som accepterar en CmsSigner i stället. |
SYSLIB0036 | Varning |
Regex.CompileToAssembly är föråldrad och stöds inte. Använd RegexGeneratorAttribute med källgeneratorn för reguljära uttryck i stället. |
SYSLIB0037 | Varning | AssemblyName medlemmar HashAlgorithm, ProcessorArchitectureoch VersionCompatibility är föråldrade och stöds inte. |
SYSLIB0038 | Varning | SerializationFormat.Binary är föråldrad och bör inte användas. |
SYSLIB0039 | Varning | TLS-versionerna 1.0 och 1.1 har kända säkerhetsrisker och rekommenderas inte. Använd en nyare TLS-version i stället, eller använd SslProtocols.None för att skjuta upp till OS-standardvärden. |
SYSLIB0040 | Varning | EncryptionPolicy.NoEncryption och EncryptionPolicy.AllowNoEncryption avsevärt minska säkerheten och bör inte användas i produktionskoden. |
SYSLIB0041 | Varning | Standard-hash-algoritmen och iterationsantalet i Rfc2898DeriveBytes konstruktorer är inaktuella och osäkra. Använd en konstruktor som accepterar hash-algoritmen och antalet iterationer. |
SYSLIB0042 | Varning |
ToXmlString och FromXmlString har ingen implementering för elliptiska kurvkryptografityper (ECC) och är föråldrade. Använd ett standardformat för import och export, till exempel ExportSubjectPublicKeyInfo eller ImportSubjectPublicKeyInfo för offentliga nycklar, eller ExportPkcs8PrivateKey ImportPkcs8PrivateKey för privata nycklar. |
SYSLIB0043 | Varning | ECDiffieHellmanPublicKey.ToByteArray() och den associerade konstruktorn har inte någon konsekvent och driftskompatibel implementering på alla plattformar. Använd ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo() i stället. |
SYSLIB0044 | Varning | AssemblyName.CodeBase och AssemblyName.EscapedCodeBase är föråldrade. Det går inte att använda dem för att läsa in en sammansättning. |
SYSLIB0045 | Varning | Kryptografiska fabriksmetoder som accepterar ett algoritmnamn är föråldrade. Använd metoden parameterlös Create fabrik på algoritmtypen i stället. |
SYSLIB0046 | Varning | Metoden ControlledExecution.Run(Action, CancellationToken) kan skada processen och bör inte användas i produktionskoden. |
SYSLIB0047 | Varning |
XmlSecureResolver är föråldrad. Använd XmlResolver.ThrowingResolver i stället när du försöker förbjuda xml-extern entitetsmatchning. |
SYSLIB0048 | Varning | RSA.EncryptValue(Byte[]) och RSA.DecryptValue(Byte[]) är föråldrade. Använd RSA.Encrypt och RSA.Decrypt i stället. |
SYSLIB0049 | Varning | JsonSerializerOptions.AddContext är föråldrad. Om du vill registrera en JsonSerializerContext använder du antingen egenskapen TypeInfoResolver eller TypeInfoResolverChain. |
SYSLIB0050 | Varning | Formateringsbaserad serialisering är föråldrad och bör inte användas. |
SYSLIB0051 | Varning | API:er som stöder föråldrad formateringsbaserad serialisering är föråldrade. De bör inte anropas eller utökas av programkod. |
SYSLIB0052 | Varning | API:er som stöder föråldrade mekanismer för Regex-utökningsbarhet är föråldrade. |
SYSLIB0053 | Varning | AesGcm ska ange den nödvändiga taggstorleken för kryptering och dekryptering. Använd en konstruktor som accepterar taggstorleken. |
SYSLIB0054 | Varning | Thread.VolatileRead och Thread.VolatileWrite är föråldrade. Använd Volatile.Read eller Volatile.Write i stället. |
SYSLIB0055 | Varning |
AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate* metoder med signerade parametrar är föråldrade. Använd de osignerade överlagringarna i stället. |
SYSLIB0056 | Varning |
Assembly.LoadFrom med en anpassad AssemblyHashAlgorithm är föråldrad. Använd överlagringar utan .AssemblyHashAlgorithm |
SYSLIB0057 | Varning |
X509Certificate2 och X509Certificate konstruktorer för binärt och filinnehåll är föråldrade. |
SYSLIB0058 | Varning | Egenskaperna KeyExchangeAlgorithm , KeyExchangeStrength , CipherAlgorithm , CipherAlgorithmStrength , HashAlgorithm och HashStrength för SslStream är föråldrade. Använd NegotiatedCipherSuite i stället. |
SYSLIB0059 | Varning | SystemEvents.EventsThreadShutdown återanrop körs inte innan processen avslutas. Använd AppDomain.ProcessExit i stället. |
Ignorera varningar
Vi rekommenderar att du använder en tillgänglig lösning när det är möjligt. Men om du inte kan ändra koden kan du ignorera varningar via ett #pragma
direktiv eller en <NoWarn>
projektinställning. Om du måste använda föråldrade API:er och diagnostiken SYSLIB0XXX
inte visas som ett fel kan du ignorera varningen i koden eller i projektfilen.
Så här utelämnar du varningarna i koden:
// Disable the warning.
#pragma warning disable SYSLIB0001
// Code that uses obsolete API.
//...
// Re-enable the warning.
#pragma warning restore SYSLIB0001
Så här utelämnar du varningarna i en projektfil:
<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>
Kommentar
Om du utelämnar varningar på det här sättet inaktiveras bara de obsoletionsvarningar som du anger. Det inaktiverar inte några andra varningar, inklusive obsoletionsvarningar med olika diagnostik-ID:n.