Language

AsyncValidationAttribute.IsValidAsync メソッド

定義

非同期検証ロジックを実装するには、サブクラスでこのメソッドをオーバーライドします。

protected:
 abstract System::Threading::Tasks::Task<System::ComponentModel::DataAnnotations::ValidationResult ^> ^ IsValidAsync(System::Object ^ value, System::ComponentModel::DataAnnotations::ValidationContext ^ validationContext, System::Threading::CancellationToken cancellationToken);
protected abstract System.Threading.Tasks.Task<System.ComponentModel.DataAnnotations.ValidationResult?> IsValidAsync(object? value, System.ComponentModel.DataAnnotations.ValidationContext validationContext, System.Threading.CancellationToken cancellationToken);
abstract member IsValidAsync : obj * System.ComponentModel.DataAnnotations.ValidationContext * System.Threading.CancellationToken -> System.Threading.Tasks.Task<System.ComponentModel.DataAnnotations.ValidationResult>
Protected MustOverride Function IsValidAsync (value As Object, validationContext As ValidationContext, cancellationToken As CancellationToken) As Task(Of ValidationResult)

パラメーター

value
Object

検証する値。

validationContext
ValidationContext

検証対象のオブジェクトやメンバーなど、検証操作に関するコンテキストを提供する ValidationContext インスタンス。 IServiceProviderを使用して検証を実行するために必要なサービスへのアクセスを提供します。

cancellationToken
CancellationToken

タスクの完了を待機している間に観察する CancellationToken 。

返品

非同期検証操作を表す Task<TResult> 。

検証が有効な場合、結果は Success。

検証が無効な場合、結果は ValidationResultのインスタンスになります。

注釈

このメソッドは、同期的に実行できるチェックを含め、適用可能なすべてのチェックを実行する必要があります。 同期 IsValid(Object, ValidationContext) 実装は、このメソッドの前に自動的に呼び出されません。 必要に応じて、ヘルパーを介して共通のチェックを共有します。

実装では、指定された cancellationToken を監視し、取り消しが要求されたときにすぐに作業を停止する必要があります。 検証インフラストラクチャは、兄弟検証コントロールを停止する検証エラーの後にこのトークンを取り消し、開始されたすべての検証タスクを待機してから戻ることがあります。 取り消しを無視する実装では、障害やショートが遅延する可能性があります。

適用対象