Поделиться через


Новые идентификаторы диагностики для устаревших 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

См. также