Validator.TryValidateObjectAsync Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
| Nome | Descrizione |
|---|---|
| TryValidateObjectAsync(Object, ValidationContext, ICollection<ValidationResult>, CancellationToken) |
Verifica in modo asincrono se l'istanza dell'oggetto specificata è valida. |
| TryValidateObjectAsync(Object, ValidationContext, ICollection<ValidationResult>, Boolean, CancellationToken) |
Verifica in modo asincrono se l'istanza dell'oggetto specificata è valida. |
TryValidateObjectAsync(Object, ValidationContext, ICollection<ValidationResult>, CancellationToken)
- Origine:
- Validator.cs
Verifica in modo asincrono se l'istanza dell'oggetto specificata è valida.
[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)
Parametri
- instance
- Object
Istanza dell'oggetto da testare. Non può essere null.
- validationContext
- ValidationContext
Descrive l'oggetto da convalidare e fornisce servizi e contesto per i validator.
- validationResults
- ICollection<ValidationResult>
Raccolta facoltativa che riceve errori di convalida come ValidationResult istanze.
- cancellationToken
- CancellationToken
Oggetto CancellationToken da osservare durante l'attesa del completamento dell'attività.
Valori restituiti
Oggetto Task<TResult> che indica true se l'oggetto è valido, false se vengono rilevati errori di convalida.
- Attributi
Eccezioni
Quando instance è null.
Quando validationContext è null.
Quando instance non corrisponde a in ObjectInstance .validationContext
L'operazione di convalida è stata annullata.
Commenti
Questo metodo valuta tutti i ValidationAttributedati associati al tipo dell'istanza dell'oggetto. Controlla anche che tutte le proprietà contrassegnate con RequiredAttribute siano impostate. Non convalida gli ValidationAttributeoggetti nelle singole proprietà dell'oggetto, a meno che non TryValidateObjectAsync(Object, ValidationContext, ICollection<ValidationResult>, Boolean, CancellationToken) venga chiamato con validateAllProperties impostato su true.
La convalida viene eseguita in tre fasi: convalida delle proprietà, convalida degli attributi a livello di tipo e convalida a livello di oggetto. Ogni fase viene eseguita solo se le fasi precedenti hanno esito positivo. La convalida a livello di oggetto preferisce richiamare ValidateAsync(ValidationContext, CancellationToken) quando implementata, con Validate(ValidationContext) come fallback per gli oggetti che implementano solo l'interfaccia sincrona. Non richiama entrambi.
Si applica a
TryValidateObjectAsync(Object, ValidationContext, ICollection<ValidationResult>, Boolean, CancellationToken)
- Origine:
- Validator.cs
Verifica in modo asincrono se l'istanza dell'oggetto specificata è valida.
[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)
Parametri
- instance
- Object
Istanza dell'oggetto da testare. Non può essere null.
- validationContext
- ValidationContext
Descrive l'oggetto da convalidare e fornisce servizi e contesto per i validator.
- validationResults
- ICollection<ValidationResult>
Raccolta facoltativa che riceve errori di convalida come ValidationResult istanze.
- validateAllProperties
- Boolean
Se true, valuta anche tutte le proprietà dell'oggetto (questo processo non è ricorsivo rispetto alle proprietà delle proprietà).
- cancellationToken
- CancellationToken
Oggetto CancellationToken da osservare durante l'attesa del completamento dell'attività.
Valori restituiti
Oggetto Task<TResult> che indica true se l'oggetto è valido, false se vengono rilevati errori di convalida.
- Attributi
Eccezioni
Quando instance è null.
Quando validationContext è null.
Quando instance non corrisponde a in ObjectInstance .validationContext
L'operazione di convalida è stata annullata.
Commenti
Questo metodo valuta tutti i ValidationAttributedati associati al tipo dell'istanza dell'oggetto. Controlla anche che tutte le proprietà contrassegnate con RequiredAttribute siano impostate. Se validateAllProperties è true, questo metodo valuta anche s ValidationAttributeper tutte le proprietà immediate di questo oggetto. Questo processo non è ricorsivo.
Quando validateAllProperties è true, viene avviata la convalida per ogni proprietà in sequenza. Gli attributi sincroni per una proprietà vengono eseguiti prima che gli attributi asincroni di tale proprietà siano attesi. La convalida asincrona che rimane in corso può sovrapporsi alla convalida asincrona per altre proprietà.
Quando validationResults è null, la convalida viene arrestata dopo il primo errore della proprietà (corto circuito tra proprietà). Tutti i validator asincroni in anteprima su altre proprietà vengono annullati in modo cooperativo. Quando validationResults è diverso da Null, tutte le proprietà vengono completate e vengono raccolti tutti gli errori.
Restituisce Task<TResult> per l'interoperabilità con modelli di composizione asincroni standard, ad Task.WhenAll esempio e Task.WhenAny.
La convalida viene eseguita in tre fasi: convalida delle proprietà, convalida degli attributi a livello di tipo e convalida a livello di oggetto. Ogni fase viene eseguita solo se le fasi precedenti hanno esito positivo. La convalida a livello di oggetto preferisce richiamare ValidateAsync(ValidationContext, CancellationToken) quando implementata, con Validate(ValidationContext) come fallback per gli oggetti che implementano solo l'interfaccia sincrona. Non richiama entrambi.