Language

AsyncValidationAttribute.GetValidationResultAsync メソッド

定義

指定された value が、 ValidationExceptionをスローせずに、現在の検証属性に対して非同期的に有効かどうかをテストします。

public System.Threading.Tasks.Task<System.ComponentModel.DataAnnotations.ValidationResult?> GetValidationResultAsync(object? value, System.ComponentModel.DataAnnotations.ValidationContext validationContext, System.Threading.CancellationToken cancellationToken = default);
member this.GetValidationResultAsync : obj * System.ComponentModel.DataAnnotations.ValidationContext * System.Threading.CancellationToken -> System.Threading.Tasks.Task<System.ComponentModel.DataAnnotations.ValidationResult>
Public Function GetValidationResultAsync (value As Object, validationContext As ValidationContext, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ValidationResult)

パラメーター

value
Object

検証する値。

validationContext
ValidationContext

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

cancellationToken
CancellationToken

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

返品

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

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

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

例外

現在の属性の形式が正しくありません。

validationContextがnullされたとき。

検証操作が取り消されました。

注釈

基になる IsValidAsync(Object, ValidationContext, CancellationToken) 実装では、指定された cancellationToken を確認し、取り消しが要求されたときにすぐに作業を停止する必要があります。 検証インフラストラクチャは、戻る前に開始されたすべての検証タスクを待機するため、取り消しを無視する実装では、エラーとショートサーキットが遅延する可能性があります。

検証時間をバインドする必要がある呼び出し元は、タイムアウト後にキャンセルするように構成されたトークン (CancelAfter(TimeSpan)で構成されたCancellationTokenSourceからのトークンなど) を渡す必要があります。

適用対象