Новые идентификаторы диагностики для устаревших API-интерфейсов
Раньше некоторые API-интерфейсы были устаревшими и не поддерживали использование настраиваемых идентификаторов диагностики. Начиная с .NET 6, эти API определены как устаревшие с использованием других настраиваемых идентификаторов диагностики. Если вы подавляете предупреждения об использовании этих API-интерфейсов через CS0618, измените подавления, чтобы использовать новые идентификаторы диагностики: SYSLIB0003, SYSLIB0019 и SYSLIB0020.
Описание изменения
В следующей таблице представлены старые и новые идентификаторы диагностики для указанного устаревшего API.
API | Старые идентификаторы диагностики | Новые идентификаторы диагностики |
---|---|---|
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 |
Представленные версии
.NET 6
Причина изменения
Начиная с .NET 5, устаревшие API-интерфейсы стали предназначены для использования значений настраиваемых идентификаторов диагностики, чтобы обеспечить детальное подавление предупреждений. Это повышает удобство работы, когда необходимо продолжать ссылаться на устаревшие API-интерфейсы. Для затронутых устаревших API-интерфейсов должны были применяться значения настраиваемого идентификатора, при этом API-интерфейсы должны были быть изначально помечены как [Obsolete]
.
Рекомендуемое действие
Если идентификаторы диагностики SYSLIB0003, SYSLIB0019 или SYSLIB0020 создаются из сборки, проверьте использование затронутых API-интерфейсов. По возможности старайтесь не использовать эти API-интерфейсы, вместо этого прибегайте к помощи сообщений и документации. Если вам необходимо сохранить ссылки на устаревшие API-интерфейсы и при этом подавить диагностику, используйте для подавления предупреждений новые идентификаторы диагностики вместо CS0618.
Затронутые API
- 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