Lingua

AsyncValidationAttribute.GetValidationResultAsync Metodo

Definizione

Verifica se l'oggetto specificato value è valido in modo asincrono rispetto all'attributo di convalida corrente senza generare un oggetto 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)

Parametri

value
Object

Valore da convalidare.

validationContext
ValidationContext

ValidationContext Istanza di che fornisce contesto sull'operazione di convalida, ad esempio l'oggetto e il membro da convalidare. Fornisce l'accesso ai servizi necessari per eseguire la convalida tramite IServiceProvider.

cancellationToken
CancellationToken

Oggetto CancellationToken da osservare durante l'attesa del completamento dell'attività.

Valori restituiti

Oggetto Task<TResult> che rappresenta l'operazione di convalida asincrona.

Quando la convalida è valida, il risultato è Success.

Se la convalida non è valida, il risultato è un'istanza di ValidationResult.

Eccezioni

L'attributo corrente non è valido.

Quando validationContext è null.

L'operazione di convalida è stata annullata.

Commenti

L'implementazione sottostante IsValidAsync(Object, ValidationContext, CancellationToken) deve osservare il lavoro fornito cancellationToken e arrestarlo tempestivamente quando viene richiesto l'annullamento. L'infrastruttura di convalida attende tutte le attività di convalida avviate prima della restituzione, pertanto un'implementazione che ignora l'annullamento può ritardare l'errore e il corto circuito.

I chiamanti che devono associare il tempo di convalida devono passare un token configurato per annullare dopo un timeout, ad esempio uno da un CancellationTokenSource configurato con CancelAfter(TimeSpan).

Si applica a