Aracılığıyla paylaş


.NET 5+ uygulamasında eski özellikler

.NET 5'den başlayarak, yeni eski olarak işaretlenen bazı API'ler üzerinde ObsoleteAttributeiki yeni özellik kullanır.

  • özelliği, ObsoleteAttribute.DiagnosticId derleyiciye özel bir tanılama kimliği kullanarak derleme uyarıları oluşturmasını söyler. Özel kimlik, kullanımdan kaldırma uyarısının özellikle ve birbirinden ayrı olarak gizlenmesini sağlar. Ad alanı obsolet'leri söz konusu olduğunda System* , özel tanılama kimliğinin biçimi şeklindedir SYSLIB0XXX. Microsoft.Extensions kullanımdan kaldırmalar söz konusu olduğunda, özel tanılama kimliğinin formatı EXTOBS0XXX şeklindedir.
  • özelliği, ObsoleteAttribute.UrlFormat eskime hakkında daha fazla bilgi edinmek için derleyiciye bir URL bağlantısı eklemesini söyler.

Eski bir API'nin kullanımından kaynaklanan derleme uyarılarıyla veya hatalarıyla karşılaşırsanız, izleyen başvuru tablolarında listelenen tanılama kimliği için sağlanan özel yönergeleri izleyin. Bu eskitmeler için uyarılar veya hatalar, eski türler veya üyeler için standart tanılama kimliği (CS0618) kullanılarak gizlenemez; bunun yerine özel veya SYSLIB0XXX tanılama kimliği değerlerini kullanın. Daha fazla bilgi için bkz . Uyarıları gizleme.

Aşağıdaki tablolar .NET 5 ve sonraki sürümlerde özel tanılama kimlikleriyle eski API'lere yönelik bir dizin sağlar:

SYSLIB kullanım dışı bırakmalar

Aşağıdaki tabloda .NET 5+ içindeki kullanımdan kaldırılan öğeler listelenmektedir SYSLIB0XXX.

Tanılama Kimliği Uyarı veya hata Açıklama
SYSLIB0001 Uyarı UTF-7 kodlaması güvenli değildir ve kullanılmamalıdır. Bunun yerine UTF-8 kullanmayı düşünün.
SYSLIB0002 Hata PrincipalPermissionAttribute çalışma zamanı tarafından kabul edilmez ve kullanılmamalıdır.
SYSLIB0003 Uyarı Kod erişim güvenliği (CAS) çalışma zamanı tarafından desteklenmez veya kabul edilmez.
SYSLIB0004 Uyarı Kısıtlanmış yürütme bölgesi (CER) özelliği desteklenmez.
SYSLIB0005 Uyarı Genel derleme önbelleği (GAC) desteklenmez.
SYSLIB0006 Uyarı Thread.Abort() desteklenmez ve oluşturur PlatformNotSupportedException.
SYSLIB0007 Uyarı Bu şifreleme algoritmasının varsayılan uygulaması desteklenmez.
SYSLIB0008 Uyarı CreatePdbGenerator() API desteklenmez ve oluştururPlatformNotSupportedException.
SYSLIB0009 Uyarı AuthenticationManager desteklenmez. Yöntemler işlem yapılmaz veya oluşturur PlatformNotSupportedException.
SYSLIB0010 Uyarı Bazı uzaktan iletişim API'leri desteklenmez ve oluşturur PlatformNotSupportedException.
SYSLIB0011 Uyarı BinaryFormatter serileştirme eskidir ve kullanılmamalıdır.
SYSLIB0012 Uyarı Assembly.CodeBase ve Assembly.EscapedCodeBase yalnızca .NET Framework uyumluluğu için dahil edilir. Bunun yerine Assembly.Location kullanın.
SYSLIB0013 Uyarı Uri.EscapeUriString(String) bazı durumlarda Uri dizesini bozabilir. Bunun yerine sorgu dizesi bileşenleri için kullanmayı Uri.EscapeDataString(String) göz önünde bulundurun.
SYSLIB0014 Uyarı WebRequest, HttpWebRequest, ServicePointve WebClient artık kullanılmıyor. Bunun yerine HttpClient kullanın.
SYSLIB0015 Uyarı DisablePrivateReflectionAttribute .NET 6+ üzerinde hiçbir etkisi yoktur.
SYSLIB0016 Uyarı Graphics.GetContextInfo Daha iyi performans ve daha az ayırma için bağımsız değişkenleri kabul eden aşırı yüklemeleri kullanın.
SYSLIB0017 Uyarı Tanımlayıcı ad imzalama desteklenmez ve oluşturur PlatformNotSupportedException.
SYSLIB0018 Uyarı Yalnızca yansıma yüklemesi desteklenmez ve oluşturur PlatformNotSupportedException.
SYSLIB0019 Uyarı System.Runtime.InteropServices.RuntimeEnvironment, SystemConfigurationFileve GetRuntimeInterfaceAsIntPtr(Guid, Guid) üyeleri GetRuntimeInterfaceAsObject(Guid, Guid)artık desteklenmez ve oluştururPlatformNotSupportedException.
SYSLIB0020 Uyarı JsonSerializerOptions.IgnoreNullValues kullanımdan kaldırıldı. Seri hale getirildiğinde null değerleri yoksaymak için olarak DefaultIgnoreConditionayarlayınJsonIgnoreCondition.WhenWritingNull.
SYSLIB0021 Uyarı Türetilmiş şifreleme türleri eskidir. Create Bunun yerine temel türdeki yöntemini kullanın.
SYSLIB0022 Uyarı Rijndael ve RijndaelManaged türleri eskidir. Bunun yerine Aes kullanın.
SYSLIB0023 Uyarı RNGCryptoServiceProvider kullanımdan kaldırıldı. Rastgele bir sayı oluşturmak için bunun yerine statik yöntemlerden birini RandomNumberGenerator kullanın.
SYSLIB0024 Uyarı AppDomains oluşturma ve kaldırma desteklenmez ve bir özel durum oluşturur.
SYSLIB0025 Uyarı SuppressIldasmAttribute .NET 6+ üzerinde hiçbir etkisi yoktur.
SYSLIB0026 Uyarı X509Certificate ve X509Certificate2 sabittir. Yeni bir sertifika oluşturmak için uygun oluşturucuyu kullanın.
SYSLIB0027 Uyarı PublicKey.Key kullanımdan kaldırıldı. gibi GetRSAPublicKey()ortak anahtarı almak için uygun yöntemi kullanın.
SYSLIB0028 Uyarı X509Certificate2.PrivateKey kullanımdan kaldırıldı. gibi RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2)özel anahtarı almak için uygun yöntemi kullanın veya özel anahtarla yeni bir örnek oluşturmak için yöntemini kullanın X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) .
SYSLIB0029 Uyarı ProduceLegacyHmacValues kullanımdan kaldırıldı. Eski HMAC değerlerinin üretilmesi artık desteklenmiyor.
SYSLIB0030 Uyarı HMACSHA1 her zaman platform tarafından sağlanan algoritma uygulamasını kullanır. parametresi olmadan useManagedSha1 bir oluşturucu kullanın.
SYSLIB0031 Uyarı CryptoConfig.EncodeOID(String) kullanımdan kaldırıldı. içinde System.Formats.Asn1sağlanan ASN.1 işlevini kullanın.
SYSLIB0032 Uyarı Bozuk işlem durumu özel durumlarından kurtarma desteklenmez; HandleProcessCorruptedStateExceptionsAttribute yoksayılır.
SYSLIB0033 Uyarı Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) eskidir ve desteklenmez. Bunun yerine PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) kullanın.
SYSLIB0034 Uyarı CmsSigner(CspParameters) kullanımdan kaldırıldı. Bunun yerine alternatif bir oluşturucu kullanın.
SYSLIB0035 Uyarı SignerInfo.ComputeCounterSignature() kullanımdan kaldırıldı. Bunun yerine kabul CmsSigner eden aşırı yüklemeyi kullanın.
SYSLIB0036 Uyarı Regex.CompileToAssembly eskidir ve desteklenmez. Bunun yerine normal ifade kaynak oluşturucu ile kullanın RegexGeneratorAttribute .
SYSLIB0037 Uyarı AssemblyName HashAlgorithm, ve ProcessorArchitecture üyeleri VersionCompatibilityeskidir ve desteklenmez.
SYSLIB0038 Uyarı SerializationFormat.Binary kullanım dışıdır ve kullanılmamalıdır.
SYSLIB0039 Uyarı TLS sürüm 1.0 ve 1.1 bilinen güvenlik açıklarına sahiptir ve önerilmez. Bunun yerine daha yeni bir TLS sürümü kullanın veya işletim sistemi varsayılanlarına ertelemek için kullanın SslProtocols.None .
SYSLIB0040 Uyarı EncryptionPolicy.NoEncryption ve EncryptionPolicy.AllowNoEncryption güvenliği önemli ölçüde azaltır ve üretim kodunda kullanılmamalıdır.
SYSLIB0041 Uyarı Oluşturuculardaki Rfc2898DeriveBytes varsayılan karma algoritma ve yineleme sayıları güncel değildir ve güvenli değildir. Karma algoritmasını ve yineleme sayısını kabul eden bir oluşturucu kullanın.
SYSLIB0042 Uyarı ToXmlString ve FromXmlString eliptik eğri şifreleme (ECC) türleri için hiçbir uygulama yoktur ve eskidir. Ortak anahtarlar ve özel anahtarlar için veya ExportSubjectPublicKeyInfo gibi ImportSubjectPublicKeyInfo standart bir içeri ve ExportPkcs8PrivateKeyImportPkcs8PrivateKey dışarı aktarma biçimi kullanın.
SYSLIB0043 Uyarı ECDiffieHellmanPublicKey.ToByteArray() ve ilişkili oluşturucunun tüm platformlarda tutarlı ve birlikte çalışabilen bir uygulaması yoktur. Bunun yerine ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo() kullanın.
SYSLIB0044 Uyarı AssemblyName.CodeBase ve AssemblyName.EscapedCodeBase artık kullanılmıyor. Derleme yüklemek için bunları kullanmak desteklenmez.
SYSLIB0045 Uyarı Bir algoritma adını kabul eden şifreleme fabrikası yöntemleri eskidir. Bunun yerine algoritma türünde parametresiz Create fabrika yöntemini kullanın.
SYSLIB0046 Uyarı ControlledExecution.Run(Action, CancellationToken) yöntemi işlemi bozabilir ve üretim kodunda kullanılmamalıdır.
SYSLIB0047 Uyarı XmlSecureResolver kullanımdan kaldırıldı. Bunun yerine, XML dış varlık çözümlemesini yasaklama girişiminde bulunurken kullanın XmlResolver.ThrowingResolver .
SYSLIB0048 Uyarı RSA.EncryptValue(Byte[]) ve RSA.DecryptValue(Byte[]) artık kullanılmıyor. bunun yerine ve RSA.Encrypt kullanınRSA.Decrypt.
SYSLIB0049 Uyarı JsonSerializerOptions.AddContext kullanımdan kaldırıldı. JsonSerializerContext kaydetmek için TypeInfoResolver veya TypeInfoResolverChain özelliğini kullanın.
SYSLIB0050 Uyarı Biçimlendirici tabanlı serileştirme eskidir ve kullanılmamalıdır.
SYSLIB0051 Uyarı Eski biçimlendirici tabanlı serileştirmeyi destekleyen API'ler eskidir. Uygulama kodu tarafından çağrılmamalı veya genişletilmemelidir.
SYSLIB0052 Uyarı Regex genişletilebilirliği için eski mekanizmaları destekleyen API'ler eskidir.
SYSLIB0053 Uyarı AesGcm şifreleme ve şifre çözme için gerekli etiket boyutunu göstermelidir. Etiket boyutunu kabul eden bir oluşturucu kullanın.
SYSLIB0054 Uyarı Thread.VolatileRead ve Thread.VolatileWrite artık kullanılmıyor. Bunun yerine veya Volatile.Read kullanınVolatile.Write.
SYSLIB0055 Uyarı AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate* imzalı parametrelere sahip yöntemler kullanımdan kaldırıldı. Bunun yerine imzasız aşırı yüklemeleri kullanın.
SYSLIB0056 Uyarı Assembly.LoadFrom ile özel AssemblyHashAlgorithm kullanımdan kaldırıldı. aşırı yüklemelerini olmadan AssemblyHashAlgorithmkullanın.
SYSLIB0057 Uyarı X509Certificate2 ve X509Certificate ikili ve dosya içeriği oluşturucuları kullanımdan kaldırıldı.
SYSLIB0058 Uyarı KeyExchangeAlgorithm, KeyExchangeStrength, CipherAlgorithm, CipherAlgorithmStrength, HashAlgorithmve HashStrength özellikleri SslStream kullanım dışıdır. Bunun yerine NegotiatedCipherSuite kullanın.
SYSLIB0059 Uyarı SystemEvents.EventsThreadShutdown geri çağırmalar işlemden çıkmadan önce çalıştırılamaz. Bunun yerine AppDomain.ProcessExit kullanın.
SYSLIB0060 Uyarı System.Security.Cryptography.Rfc2898DeriveBytes oluşturucular artık kullanılmıyor. Bunun yerine Rfc2898DeriveBytes.Pbkdf2 kullanın.
SYSLIB0061 Uyarı Ve'yi QueryableQueryable.MaxBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TSource>)Queryable.MinBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TSource>) almak IComparer<TSource> eskimiş. bir alan IComparer<TKey>yenilerini kullanın.
SYSLIB0062 Uyarı XsltSettings.EnableScript kullanımdan kaldırıldı.

EXTOBS modası geçmiş öğeler

Aşağıdaki tabloda kitaplıklardaki EXTOBS0XXXMicrosoft.Extensions obsolet'ler listeleniyor.

Tanılama Kimliği Uyarı veya hata Açıklama
EXTOBS0001 Uyarı IResourceMonitor eskidir ve gelecekteki bir sürümde kaldırılacaktır. Kaynak İzleme gözlemlenebilir araçları kullanmayı göz önünde bulundurun.
EXTOBS0002 Uyarı AddServiceLogEnricher Uzantı yöntemleri, 10.1.0 paketi sürümünden itibaren kullanım dışı olarak işaretlendi. Yöntemler, hizmet günlüklerini değil uygulama günlüklerini zenginleştirir, bu nedenle bunların yerine doğru adlandırılmış AddApplicationLogEnricher yöntemler kullanılır.

Uyarıları gizleme

Mümkün olduğunda kullanılabilir bir geçici çözüm kullanmanız önerilir. Ancak, kodunuzu değiştiremiyorsanız bir yönerge veya #pragma proje ayarı aracılığıyla <NoWarn> uyarıları gizleyebilirsiniz. Eski API'leri kullanmanız gerekiyorsa ve SYSLIB0XXX veya EXTOBS0XXX tanılaması hata olarak ortaya çıkmazsa, uyarıyı kodda veya proje dosyanızda gizleyebilirsiniz.

Koddaki uyarıları engellemek için:

// Disable the warning.
#pragma warning disable SYSLIB0001

// Code that uses obsolete API.
//...

// Re-enable the warning.
#pragma warning restore SYSLIB0001

Proje dosyasındaki uyarıları engellemek için:

<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>

Not

Uyarıların bu şekilde gizlenmesi yalnızca belirttiğiniz eski uyarıları devre dışı bırakır. Farklı tanılama kimliklerine sahip kullanımdan kaldırılan uyarılar da dahil olmak üzere diğer uyarıları devre dışı bırakmaz.

Ayrıca bkz.