共用方式為


具有非預設診斷識別碼的 API 淘汰 (.NET 8)

從 .NET 8 開始,某些 API 已標示為已淘汰。 這項中斷性變更專屬於已標示為已過時且「具有自訂診斷識別碼」的 API。 隱藏 C# 編譯器的預設淘汰診斷識別碼,也就是 CS0618,不會隱藏使用這些 API 時編譯器所產生的警告。

變更描述

在舊版 .NET 中,可以使用這些 API,且不會出現任何建置警告。 在 .NET 8 與更新版本中,使用這些 API 會產生具有自訂診斷識別碼的編譯時間警告或錯誤。 使用自訂診斷識別碼可讓您個別隱藏淘汰警告,而不是隱藏所有淘汰警告。

下表列出已淘汰 API 的自訂診斷識別碼及其對應的警告訊息。

診斷識別碼 描述 嚴重性
SYSLIB0011 BinaryFormatter 序列化已淘汰 警告/錯誤
SYSLIB0048 RSA.EncryptValue(Byte[])RSA.DecryptValue(Byte[]) 已淘汰。 請改用 RSA.EncryptRSA.Decrypt 警告
SYSLIB0049 JsonSerializerOptions.AddContext 已淘汰。 若要註冊 JsonSerializerContext,請使用 TypeInfoResolver 或 TypeInfoResolverChain 屬性。 警告
SYSLIB0050 格式器型序列化已淘汰,不應使用。 警告
SYSLIB0051 支援已淘汰的格式器型序列化的 API 已淘汰。 不應透過應用程式程式碼呼叫或延伸它們。 警告
SYSLIB0052 支援規則運算式擴充性已淘汰機制的 API 已淘汰。 警告
SYSLIB0053 AesGcm 應該指出加密和解密所需的標記大小。 使用接受該標記大小的建構函式。 警告

導入的版本

.NET 8

中斷性變更的類型

這些混淆可能會影響來源相容性

  • 請使用警告上提供的 URL 連結來遵循針對每個診斷識別碼提供的特定指引。

  • 使用淘汰類型或成員的標準診斷識別碼無法隱藏這些淘汰項目的警告或錯誤;請改用自訂 SYSLIBxxxx 診斷識別碼值。

受影響的 API

SYSLIB0011

SYSLIB0048

SYSLIB0049

SYSLIB0050

SYSLIB0051

此處會依命名空間整理相關的 SYSLIB0051 API 淘汰。

Microsoft.CSharp.RuntimeBinder 命名空間

Microsoft.VisualBasic.FileIO 命名空間

System 命名空間

System.Collections 命名空間

System.Collections.Generic 命名空間

System.Collections.Specialized 命名空間

System.ComponentModel 命名空間

System.ComponentModel.Composition 命名空間

System.ComponentModel.Composition.Primitives 命名空間

System.ComponentModel.DataAnnotations 命名空間

System.ComponentModel.Design 命名空間

System.Configuration 命名空間

System.Data 命名空間

System.Data.Common 命名空間

System.Data.Odbc 命名空間

System.Data.OleDb 命名空間

System.Data.SqlTypes 命名空間

System.Diagnostics.Eventing.Reader 命名空間

System.Diagnostics.Tracing 命名空間

System.DirectoryServices 命名空間

System.DirectoryServices.AccountManagement 命名空間

System.DirectoryServices.ActiveDirectory 命名空間

System.DirectoryServices.Protocols 命名空間

System.Formats.Asn1 命名空間

System.Formats.Cbor 命名空間

System.Globalization 命名空間

System.IO 命名空間

System.Management 命名空間

System.Media 命名空間

System.Net 命名空間

System.Net.Mail 命名空間

System.Net.NetworkInformation 命名空間

System.Net.Sockets 命名空間

System.Reflection 命名空間

System.Reflection.Metadata 命名空間

System.Resources 命名空間

System.Runtime.CompilerServices 命名空間

System.Runtime.InteropServices 命名空間

System.Runtime.Serialization 命名空間

System.Security 命名空間

System.Security.AccessControl 命名空間

System.Security.Authentication 命名空間

System.Security.Claims 命名空間

System.Security.Cryptography 命名空間

System.Security.Policy 命名空間

System.Security.Principal 命名空間

System.Text.Json 命名空間

System.Text.RegularExpressions 命名空間

System.Threading 命名空間

System.Threading.Channels 命名空間

System.Threading.Tasks 命名空間

System.Transactions 命名空間

System.Xml 命名空間

System.Xml.Schema 命名空間

System.Xml.XPath 命名空間

System.Xml.Xsl 命名空間

SYSLIB0052

SYSLIB0053

另請參閱