Language

Validator.TryValidateObjectAsync メソッド

定義

オーバーロード

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

指定されたオブジェクト インスタンスが有効かどうかを非同期的にテストします。

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

指定されたオブジェクト インスタンスが有効かどうかを非同期的にテストします。

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

ソース:
Validator.cs

指定されたオブジェクト インスタンスが有効かどうかを非同期的にテストします。

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

パラメーター

instance
Object

テストするオブジェクト インスタンス。 nullすることはできません。

validationContext
ValidationContext

検証するオブジェクトについて説明し、検証コントロールのサービスとコンテキストを提供します。

validationResults
ICollection<ValidationResult>

ValidationResult インスタンスとして検証エラーを受け取る省略可能なコレクション。

cancellationToken
CancellationToken

タスクの完了を待機している間に観察する CancellationToken 。

返品

オブジェクトが有効な場合にtrueされるTask<TResult>。検証エラーが発生した場合にfalse。

属性

例外

instanceがnullされたとき。

validationContextがnullされたとき。

instanceがvalidationContextのObjectInstanceと一致しない場合。

検証操作が取り消されました。

注釈

このメソッドは、オブジェクト インスタンスの型にアタッチされているすべての ValidationAttributeを評価します。 また、 RequiredAttribute でマークされているすべてのプロパティが設定されていることを確認します。 validateAllPropertiesを true に設定して呼び出TryValidateObjectAsync(Object, ValidationContext, ICollection<ValidationResult>, Boolean, CancellationToken)場合を除き、オブジェクトの個々のプロパティのValidationAttributeは検証されません。

検証は、プロパティの検証、型レベルの属性の検証、オブジェクト レベルの検証の 3 つの段階で実行されます。 各ステージは、上記のステージが成功した場合にのみ実行されます。 オブジェクト レベルの検証では、同期インターフェイスのみを実装するオブジェクトのフォールバックとしてValidate(ValidationContext)を使用して、実装時にValidateAsync(ValidationContext, CancellationToken)を呼び出す方が優先されます。 両方を呼び出すわけではありません。

適用対象

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

ソース:
Validator.cs

指定されたオブジェクト インスタンスが有効かどうかを非同期的にテストします。

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

パラメーター

instance
Object

テストするオブジェクト インスタンス。 nullすることはできません。

validationContext
ValidationContext

検証するオブジェクトについて説明し、検証コントロールのサービスとコンテキストを提供します。

validationResults
ICollection<ValidationResult>

ValidationResult インスタンスとして検証エラーを受け取る省略可能なコレクション。

validateAllProperties
Boolean

true場合は、オブジェクトのすべてのプロパティも評価されます (このプロセスはプロパティのプロパティに対して再帰的ではありません)。

cancellationToken
CancellationToken

タスクの完了を待機している間に観察する CancellationToken 。

返品

オブジェクトが有効な場合にtrueされるTask<TResult>。検証エラーが発生した場合にfalse。

属性

例外

instanceがnullされたとき。

validationContextがnullされたとき。

instanceがvalidationContextのObjectInstanceと一致しない場合。

検証操作が取り消されました。

注釈

このメソッドは、オブジェクト インスタンスの型にアタッチされているすべての ValidationAttributeを評価します。 また、 RequiredAttribute でマークされているすべてのプロパティが設定されていることを確認します。 validateAllPropertiesがtrue場合、このメソッドは、このオブジェクトのすべての即時プロパティのValidationAttributeも評価します。 このプロセスは再帰的ではありません。

validateAllPropertiesがtrueされると、各プロパティの検証が順番に開始されます。 プロパティの同期属性は、そのプロパティの非同期属性が待機される前に実行されます。 進行中の非同期検証は、他のプロパティの非同期検証と重複する可能性があります。

validationResultsがnullされると、最初のプロパティ エラー (クロスプロパティショートサーキット) の後に検証が停止します。 他のプロパティに対する実行中の非同期検証コントロールは、協調的に取り消されます。 validationResultsが null 以外の場合、すべてのプロパティが完了し、すべてのエラーが収集されます。

Task.WhenAllやTask.WhenAnyなどの標準的な非同期コンポジション パターンとの相互運用性のためにTask<TResult>を返します。

検証は、プロパティの検証、型レベルの属性の検証、オブジェクト レベルの検証の 3 つの段階で実行されます。 各ステージは、上記のステージが成功した場合にのみ実行されます。 オブジェクト レベルの検証では、同期インターフェイスのみを実装するオブジェクトのフォールバックとしてValidate(ValidationContext)を使用して、実装時にValidateAsync(ValidationContext, CancellationToken)を呼び出す方が優先されます。 両方を呼び出すわけではありません。

適用対象