Język

AsyncValidationAttribute.GetValidationResultAsync Metoda

Definicja

Sprawdza, czy dana wartość value jest prawidłowa asynchronicznie w odniesieniu do bieżącego atrybutu weryfikacji bez zgłaszania ValidationExceptionelementu .

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)

Parametry

value
Object

Wartość do zweryfikowania.

validationContext
ValidationContext

ValidationContext Wystąpienie, które zawiera kontekst operacji weryfikacji, takie jak obiekt i element członkowski, który jest weryfikowany. Zapewnia dostęp do usług wymaganych do przeprowadzenia walidacji przy użyciu polecenia IServiceProvider.

cancellationToken
CancellationToken

Element do CancellationToken obserwowania podczas oczekiwania na ukończenie zadania.

Zwraca

Reprezentująca Task<TResult> operację asynchronicznej weryfikacji.

Gdy walidacja jest prawidłowa, wynik to Success.

Gdy walidacja jest nieprawidłowa, wynikiem jest wystąpienie klasy ValidationResult.

Wyjątki

Bieżący atrybut jest źle sformułowany.

Gdy validationContext ma wartość null.

Operacja walidacji została anulowana.

Uwagi

IsValidAsync(Object, ValidationContext, CancellationToken) Podstawowa implementacja musi obserwować podaną cancellationToken i zatrzymać pracę natychmiast po zażądaniu anulowania. Infrastruktura walidacji oczekuje na wszystkie uruchomione zadania weryfikacji przed zwróceniem, więc implementacja, która ignoruje anulowanie, może opóźnić awarię i zwarcie.

Osoby wywołujące, które muszą powiązać czas weryfikacji, powinny przekazać token skonfigurowany do anulowania po przekroczeniu limitu czasu, na przykład jeden ze skonfigurowanych CancellationTokenSource za pomocą CancelAfter(TimeSpan)polecenia .

Dotyczy