Validator.TryValidateObjectAsync Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ü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.