Neue Diagnose-IDs für veraltete APIs
Zuvor wurden einige APIs ohne benutzerdefinierte Diagnose-IDs als veraltet angezeigt. Ab .NET 6 werden diese APIs mit unterschiedlichen benutzerdefinierten Diagnose-IDs als veraltet angezeigt. Wenn Sie Warnungen für die Verwendung dieser APIs über CS0618 unterdrückt haben, ändern Sie die Unterdrückungen so, dass die neuen Diagnose-IDs SYSLIB0003, SYSLIB0019 und SYSLIB0020 verwendet werden.
Beschreibung der Änderung
Die folgende Tabelle zeigt die alten und neuen Diagnose-IDs für die aufgelistete veraltete API.
API | Vorherige Diagnose-ID | Neue Diagnose-ID |
---|---|---|
Thread.GetCompressedStack() | CS0618 | SYSLIB0003 |
Thread.SetCompressedStack(CompressedStack) | CS0618 | SYSLIB0003 |
RuntimeEnvironment.SystemConfigurationFile | CS0618 | SYSLIB0019 |
RuntimeEnvironment.GetRuntimeInterfaceAsIntPtr(Guid, Guid) | CS0618 | SYSLIB0019 |
RuntimeEnvironment.GetRuntimeInterfaceAsObject(Guid, Guid) | CS0618 | SYSLIB0019 |
JsonSerializerOptions.IgnoreNullValues | CS0618 | SYSLIB0020 |
Eingeführt in Version
.NET 6
Grund für die Änderung
Ab .NET 5 sollen für veraltete Versionen benutzerdefinierte Diagnose-ID-Werte verwendet werden, um eine differenzierte Unterdrückung der Warnungen zu ermöglichen. Dies ist benutzerfreundlicher, wenn Verweise auf die veralteten APIs beibehalten werden müssen. Auf die hier betroffenen veralteten Versionen sollten benutzerdefinierte Diagnose-ID-Werte angewendet worden sein, als die APIs ursprünglich als [Obsolete]
markiert wurden.
Empfohlene Maßnahme
Wenn die DIAGNOSE-IDs SYSLIB0003, SYSLIB0019 oder SYSLIB0020 von Ihrem Build generiert werden, überprüfen Sie die Verwendung der betroffenen APIs. Verwenden Sie diese APIs möglichst nicht, und sehen Sie sich die Nachrichten und die Dokumentation an, um Alternativen zu finden. Wenn Sie die Verweise auf die veralteten APIs beibehalten und die Diagnose unterdrücken müssen, unterdrücken Sie die Warnungen unter Verwendung der neuen Diagnose-IDs anstelle von CS0618.
Betroffene APIs
- System.Threading.Thread.GetCompressedStack()
- System.Threading.Thread.SetCompressedStack(CompressedStack)
- System.Runtime.InteropServices.RuntimeEnvironment.SystemConfigurationFile
- System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeInterfaceAsIntPtr(Guid, Guid)
- System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeInterfaceAsObject(Guid, Guid)
- System.Text.Json.JsonSerializerOptions.IgnoreNullValues