淘汰 API 的新診斷識別碼
先前,一些 API 已淘汰,而不需要使用自訂診斷識別碼。 從 .NET 6 開始,這些 API 會使用不同的自訂診斷識別碼來回報為已淘汰。 如果您透過 CS0618 隱藏使用這些 API 的警告,則請修改隱藏以使用新的診斷識別碼: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 標記為 [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
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應