語言

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

A CancellationToken 在等待任務完成時觀察。

傳回

A Task<TResult> 代表非同步驗證操作。

當驗證有效時,結果為 Success。

當驗證無效時,結果是 的 ValidationResult一個實例。

例外狀況

目前的屬性是畸形的。

當 validationContext 是 null。

驗證作業被取消。

備註

底層 IsValidAsync(Object, ValidationContext, CancellationToken) 實作必須觀察所提供 cancellationToken 內容,並在要求取消時立即停止工作。 驗證基礎設施會等待所有已啟動的驗證任務才返回,因此忽略取消的實作可以延遲失敗與短路。

需要限制驗證時間的呼叫者,應傳遞設定為逾時後取消的令牌,例如設定 CancellationTokenSource 為 CancelAfter(TimeSpan)的 。

適用於