Język

Validator.TryValidateObjectAsync Metoda

Definicja

Przeciążenia

Nazwisko Opis
TryValidateObjectAsync(Object, ValidationContext, ICollection<ValidationResult>, CancellationToken)

Asynchronicznie sprawdza, czy dane wystąpienie obiektu jest prawidłowe.

TryValidateObjectAsync(Object, ValidationContext, ICollection<ValidationResult>, Boolean, CancellationToken)

Asynchronicznie sprawdza, czy dane wystąpienie obiektu jest prawidłowe.

TryValidateObjectAsync(Object, ValidationContext, ICollection<ValidationResult>, CancellationToken)

Źródło:
Validator.cs

Asynchronicznie sprawdza, czy dane wystąpienie obiektu jest prawidłowe.

[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Constructing a ValidationContext without a display name is not trim-safe because it uses reflection to discover the type of the instance being validated in order to resolve the DisplayNameAttribute when a display name is not provided.")]
public static System.Threading.Tasks.Task<bool> TryValidateObjectAsync(object instance, System.ComponentModel.DataAnnotations.ValidationContext validationContext, System.Collections.Generic.ICollection<System.ComponentModel.DataAnnotations.ValidationResult>? validationResults, System.Threading.CancellationToken cancellationToken = default);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Constructing a ValidationContext without a display name is not trim-safe because it uses reflection to discover the type of the instance being validated in order to resolve the DisplayNameAttribute when a display name is not provided.")>]
static member TryValidateObjectAsync : obj * System.ComponentModel.DataAnnotations.ValidationContext * System.Collections.Generic.ICollection<System.ComponentModel.DataAnnotations.ValidationResult> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
Public Shared Function TryValidateObjectAsync (instance As Object, validationContext As ValidationContext, validationResults As ICollection(Of ValidationResult), Optional cancellationToken As CancellationToken = Nothing) As Task(Of Boolean)

Parametry

instance
Object

Wystąpienie obiektu do przetestowania. Nie można go null.

validationContext
ValidationContext

Opisuje obiekt do weryfikowania i świadczenia usług i kontekstu dla modułów sprawdzania poprawności.

validationResults
ICollection<ValidationResult>

Opcjonalna kolekcja, która odbiera błędy walidacji jako ValidationResult wystąpienia.

cancellationToken
CancellationToken

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

Zwraca

Wartość Task<TResult> , true jeśli obiekt jest prawidłowy, false jeśli wystąpią jakiekolwiek błędy walidacji.

Atrybuty

Wyjątki

Gdy instance ma wartość null.

Gdy validationContext ma wartość null.

Gdy instance element nie jest zgodny z parametrem ObjectInstance w dniu validationContext.

Operacja walidacji została anulowana.

Uwagi

Ta metoda ocenia wszystkie ValidationAttributedołączone do typu wystąpienia obiektu. Sprawdza również, czy wszystkie właściwości oznaczone za pomocą RequiredAttribute są ustawione. Nie weryfikuje s ValidationAttributedla poszczególnych właściwości obiektu, chyba że TryValidateObjectAsync(Object, ValidationContext, ICollection<ValidationResult>, Boolean, CancellationToken) jest wywoływany z ustawioną wartością validateAllPropertiestrue.

Walidacja jest uruchamiana w trzech etapach: walidacja właściwości, walidacja atrybutu na poziomie typu i walidacja na poziomie obiektu. Każdy etap jest uruchamiany tylko wtedy, gdy poprzednie etapy się powiedzie. Walidacja na poziomie obiektu preferuje wywołanie ValidateAsync(ValidationContext, CancellationToken) podczas implementacji, z Validate(ValidationContext) jako rezerwą dla obiektów, które implementują tylko interfejs synchroniczny. Nie wywołuje obu tych elementów.

Dotyczy

TryValidateObjectAsync(Object, ValidationContext, ICollection<ValidationResult>, Boolean, CancellationToken)

Źródło:
Validator.cs

Asynchronicznie sprawdza, czy dane wystąpienie obiektu jest prawidłowe.

[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Constructing a ValidationContext without a display name is not trim-safe because it uses reflection to discover the type of the instance being validated in order to resolve the DisplayNameAttribute when a display name is not provided.")]
public static System.Threading.Tasks.Task<bool> TryValidateObjectAsync(object instance, System.ComponentModel.DataAnnotations.ValidationContext validationContext, System.Collections.Generic.ICollection<System.ComponentModel.DataAnnotations.ValidationResult>? validationResults, bool validateAllProperties, System.Threading.CancellationToken cancellationToken = default);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Constructing a ValidationContext without a display name is not trim-safe because it uses reflection to discover the type of the instance being validated in order to resolve the DisplayNameAttribute when a display name is not provided.")>]
static member TryValidateObjectAsync : obj * System.ComponentModel.DataAnnotations.ValidationContext * System.Collections.Generic.ICollection<System.ComponentModel.DataAnnotations.ValidationResult> * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
Public Shared Function TryValidateObjectAsync (instance As Object, validationContext As ValidationContext, validationResults As ICollection(Of ValidationResult), validateAllProperties As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task(Of Boolean)

Parametry

instance
Object

Wystąpienie obiektu do przetestowania. Nie można go null.

validationContext
ValidationContext

Opisuje obiekt do weryfikowania i świadczenia usług i kontekstu dla modułów sprawdzania poprawności.

validationResults
ICollection<ValidationResult>

Opcjonalna kolekcja, która odbiera błędy walidacji jako ValidationResult wystąpienia.

validateAllProperties
Boolean

Jeśli trueprogram oblicza również wszystkie właściwości obiektu (ten proces nie jest rekursywny we właściwościach właściwości).

cancellationToken
CancellationToken

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

Zwraca

Wartość Task<TResult> , true jeśli obiekt jest prawidłowy, false jeśli wystąpią jakiekolwiek błędy walidacji.

Atrybuty

Wyjątki

Gdy instance ma wartość null.

Gdy validationContext ma wartość null.

Gdy instance element nie jest zgodny z parametrem ObjectInstance w dniu validationContext.

Operacja walidacji została anulowana.

Uwagi

Ta metoda ocenia wszystkie ValidationAttributedołączone do typu wystąpienia obiektu. Sprawdza również, czy wszystkie właściwości oznaczone za pomocą RequiredAttribute są ustawione. Jeśli validateAllProperties jest trueto , ta metoda oblicza ValidationAttributerównież wartości s dla wszystkich natychmiastowych właściwości tego obiektu. Ten proces nie jest rekursywny.

Gdy validateAllProperties parametr ma truewartość , walidacja jest uruchamiana dla każdej właściwości w sekwencji. Atrybuty synchroniczne dla właściwości uruchomionej przed oczekiwaniem na atrybuty asynchroniczne tej właściwości. Asynchroniczna weryfikacja, która pozostaje w toku, może nakładać się na asynchroniczną walidację innych właściwości.

Gdy validationResults parametr ma nullwartość , walidacja zostanie zatrzymana po pierwszym błędzie właściwości (zwarcie między właściwościami). Wszystkie asynchroniczne moduły sprawdzania poprawności w locie na innych właściwościach są anulowane wspólnie. Gdy validationResults parametr ma wartość inną niż null, wszystkie właściwości zostaną ukończone, a wszystkie błędy zostaną zebrane.

Zwraca wartość Task<TResult> dla współdziałania ze standardowymi wzorcami kompozycji asynchronicznych, takimi jak Task.WhenAll i Task.WhenAny.

Walidacja jest uruchamiana w trzech etapach: walidacja właściwości, walidacja atrybutu na poziomie typu i walidacja na poziomie obiektu. Każdy etap jest uruchamiany tylko wtedy, gdy poprzednie etapy się powiedzie. Walidacja na poziomie obiektu preferuje wywołanie ValidateAsync(ValidationContext, CancellationToken) podczas implementacji, z Validate(ValidationContext) jako rezerwą dla obiektów, które implementują tylko interfejs synchroniczny. Nie wywołuje obu tych elementów.

Dotyczy