.NET 11 以降では、IStartupValidatorは非推奨です。 このインターフェイスを参照または実装すると、コンパイラによって警告 SYSLIB0066 が生成され、メッセージ Implement IAsyncStartupValidator instead. が表示されます。インターフェイスは引き続き使用可能であり、互換性のために機能します。
廃止の理由
ホストのスタートアップには、 StartAsyncを介した非同期エントリ ポイントがあります。 新しいカスタム スタートアップ バリデーターでは、IAsyncStartupValidator を使用する必要があります。 その非同期 ValidateAsync コントラクトにより、非同期実装は使用されない同期 Validate メソッドを提供する必要がありません。 2 つのインターフェイスは独立しています。
Workaround
カスタムスタートアップバリデーターを移行するには、代わりに IAsyncStartupValidator を実装して登録してください。 検証で必要な場合は、ValidateAsync で非同期操作を使用し、キャンセル トークンを渡します。 実装が提供するスタートアップ検証コントラクトの下でのみ実装を登録します。IStartupValidator と IAsyncStartupValidator の両方に登録しないでください。
通常、 OptionsBuilder<TOptions>.ValidateOnStart() のみを呼び出し、スタートアップ検証インターフェイスを直接実装しないアプリケーションでは、コードを変更する必要はありません。
警告を抑制する
古いインターフェイスを使用する必要がある場合は、コードまたはプロジェクト ファイルで警告を抑制できます。
1 つの違反を抑制するには、ソース ファイルにプリプロセッサ ディレクティブを追加して警告を無効にし、その後再度有効にします。
#pragma warning disable SYSLIB0066
// Code that uses the obsolete interface.
#pragma warning restore SYSLIB0066
プロジェクト内のすべての SYSLIB0066 警告を抑制するには、 <NoWarn> プロパティをプロジェクト ファイルに追加します。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<NoWarn>$(NoWarn);SYSLIB0066</NoWarn>
</PropertyGroup>
</Project>
詳細については、「警告を表示しない」を参照してください。
.NET