Sprache

Validator.TryValidateObjectAsync Methode

Definition

Überlädt

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

Überprüft asynchron, ob die angegebene Objektinstanz gültig ist.

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

Überprüft asynchron, ob die angegebene Objektinstanz gültig ist.

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

Quelle:
Validator.cs

Überprüft asynchron, ob die angegebene Objektinstanz gültig ist.

[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)

Parameter

instance
Object

Die zu testde Objektinstanz. Es kann nicht nullwerden.

validationContext
ValidationContext

Beschreibt das Zu überprüfende Objekt und stellt Dienste und Kontext für die Validatoren bereit.

validationResults
ICollection<ValidationResult>

Eine optionale Auflistung, die Überprüfungsfehler als ValidationResult Instanzen empfängt.

cancellationToken
CancellationToken

A CancellationToken , um zu beobachten, während sie auf den Abschluss der Aufgabe warten.

Gibt zurück

Ein Task<TResult> Wert true , bei dem das Objekt gültig ist, false wenn Überprüfungsfehler aufgetreten sind.

Attribute

Ausnahmen

Wann instance ist null.

Wann validationContext ist null.

Wenn instance dies nicht mit der EinvalidationContext-ObjectInstance/Aus-Methode übereinstimmt.

Der Überprüfungsvorgang wurde abgebrochen.

Hinweise

Diese Methode wertet alle ValidationAttributean den Typ der Objektinstanz angefügten Objekte aus. Außerdem wird überprüft, ob alle mit "" markierten RequiredAttribute Eigenschaften festgelegt sind. Sie überprüft die ValidationAttributes nicht für einzelne Eigenschaften des Objekts, es sei denn TryValidateObjectAsync(Object, ValidationContext, ICollection<ValidationResult>, Boolean, CancellationToken) , sie wird mit validateAllProperties "Set" trueaufgerufen.

Die Überprüfung wird in drei Phasen ausgeführt: Eigenschaftenüberprüfung, Attributüberprüfung auf Typebene und Überprüfung auf Objektebene. Jede Phase wird nur ausgeführt, wenn die vorherigen Phasen erfolgreich sind. Bei der Überprüfung auf Objektebene wird bevorzugt ValidateAsync(ValidationContext, CancellationToken) , wenn sie implementiert wird, mit Validate(ValidationContext) einem Fallback für Objekte, die nur die synchrone Schnittstelle implementieren. Beides wird nicht aufgerufen.

Gilt für:

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

Quelle:
Validator.cs

Überprüft asynchron, ob die angegebene Objektinstanz gültig ist.

[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)

Parameter

instance
Object

Die zu testde Objektinstanz. Es kann nicht nullwerden.

validationContext
ValidationContext

Beschreibt das Zu überprüfende Objekt und stellt Dienste und Kontext für die Validatoren bereit.

validationResults
ICollection<ValidationResult>

Eine optionale Auflistung, die Überprüfungsfehler als ValidationResult Instanzen empfängt.

validateAllProperties
Boolean

Wenn true, auch alle Eigenschaften des Objekts ausgewertet werden (dieser Prozess ist nicht rekursiv über Eigenschaften der Eigenschaften).

cancellationToken
CancellationToken

A CancellationToken , um zu beobachten, während sie auf den Abschluss der Aufgabe warten.

Gibt zurück

Ein Task<TResult> Wert true , bei dem das Objekt gültig ist, false wenn Überprüfungsfehler aufgetreten sind.

Attribute

Ausnahmen

Wann instance ist null.

Wann validationContext ist null.

Wenn instance dies nicht mit der EinvalidationContext-ObjectInstance/Aus-Methode übereinstimmt.

Der Überprüfungsvorgang wurde abgebrochen.

Hinweise

Diese Methode wertet alle ValidationAttributean den Typ der Objektinstanz angefügten Objekte aus. Außerdem wird überprüft, ob alle mit "" markierten RequiredAttribute Eigenschaften festgelegt sind. Wenn validateAllProperties dies der Fall ist true, wertet diese Methode auch die ValidationAttributes für alle unmittelbaren Eigenschaften dieses Objekts aus. Dieser Prozess ist nicht rekursiv.

Ist validateAllProperties dies trueder Zeitpunkt, wird die Überprüfung für jede Eigenschaft in Sequenz gestartet. Synchrone Attribute für eine Eigenschaft werden ausgeführt, bevor die asynchronen Attribute dieser Eigenschaft erwartet werden. Die asynchrone Überprüfung, die noch ausgeführt wird, kann sich mit der asynchronen Überprüfung für andere Eigenschaften überlappen.

Ist validationResults dies nullder Zeitpunkt, stoppt die Überprüfung nach dem ersten Eigenschaftsfehler (Cross-Property Short-Circuit). Alle asynchronen In-Flight-Validatoren für andere Eigenschaften werden kooperativ abgebrochen. Wenn validationResults nicht null ist, werden alle Eigenschaften abgeschlossen, und alle Fehler werden gesammelt.

Gibt Task<TResult> für die Interoperabilität mit standardmäßigen asynchronen Kompositionsmustern wie Task.WhenAll und Task.WhenAny.

Die Überprüfung wird in drei Phasen ausgeführt: Eigenschaftenüberprüfung, Attributüberprüfung auf Typebene und Überprüfung auf Objektebene. Jede Phase wird nur ausgeführt, wenn die vorherigen Phasen erfolgreich sind. Bei der Überprüfung auf Objektebene wird bevorzugt ValidateAsync(ValidationContext, CancellationToken) , wenn sie implementiert wird, mit Validate(ValidationContext) einem Fallback für Objekte, die nur die synchrone Schnittstelle implementieren. Beides wird nicht aufgerufen.

Gilt für: