次の方法で共有


既定以外の診断 ID を持つ API の旧型式化 (.NET 8)

.NET 8 以降、一部の API は古いものとしてマークされています。 この重大な変更は、"カスタム診断 ID" を持つ、古いものとしてマークされている API に固有のものです。 既定の旧型式診断 ID (C# コンパイラの場合は CS0618) を抑制しても、これらの API の使用時にコンパイラによって生成される警告は抑制されません。

変更内容

以前のバージョンの .NET では、ビルドの警告なしにこれらの API を使用できます。 .NET 8 以降のバージョンでは、これらの API を使用すると、カスタム診断 ID に関するコンパイル時の警告またはエラーが生成されます。 カスタム診断 ID を使用すると、すべての旧型式であるという警告を一括抑制する代わりに、旧型式であるという警告を個別に抑制することができます。

次の表に、古い API に対するカスタム診断 ID とそれに対応する警告メッセージを示します。

診断 ID 説明 重要度
SYSLIB0011 BinaryFormatter は旧型式 警告またはエラー
SYSLIB0048 RSA.EncryptValue(Byte[])RSA.DecryptValue(Byte[]) は非推奨になっています。 代わりに、RSA.Encrypt および RSA.Decrypt を使用してください。 警告
SYSLIB0049 JsonSerializerOptions.AddContext は廃止されています。 JsonSerializerContext を登録するには、TypeInfoResolver または TypeInfoResolverChain プロパティを使います。 警告
SYSLIB0050 フォーマッタ ベースのシリアル化は古いので使用しないでください。 警告
SYSLIB0051 古いフォーマッタ ベースのシリアル化をサポートする API は古くなっています。 アプリケーション コードで呼び出したり拡張したりすることはできません。 警告
SYSLIB0052 Regex 拡張機能の古いメカニズムをサポートする API は廃止されています。 警告
SYSLIB0053 AesGcm では、暗号化と暗号化解除に必要なタグ サイズが示されている必要があります。 タグ サイズを受け入れるコンストラクターを使用してください。 警告

導入されたバージョン

.NET 8

破壊的変更の種類

この非推奨はソースの互換性に影響を与える可能性があります。

  • 警告に記載されている URL リンクを使用して、各診断 ID に対して指定されているガイダンスに従います。

  • これらの旧型式に関する警告またはエラーは、古い型またはメンバーに対して標準診断 ID を使用して抑制することはできません。代わりに、カスタム SYSLIBxxxx 診断 ID の値を使用してください。

影響を受ける 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

こちらもご覧ください