Bahasa

AsyncValidationAttribute.GetValidationResultAsync Metode

Definisi

Menguji apakah yang diberikan value valid secara asinkron sehubungan dengan atribut validasi saat ini tanpa melempar .ValidationException

public System.Threading.Tasks.Task<System.ComponentModel.DataAnnotations.ValidationResult?> GetValidationResultAsync(object? value, System.ComponentModel.DataAnnotations.ValidationContext validationContext, System.Threading.CancellationToken cancellationToken = default);
member this.GetValidationResultAsync : obj * System.ComponentModel.DataAnnotations.ValidationContext * System.Threading.CancellationToken -> System.Threading.Tasks.Task<System.ComponentModel.DataAnnotations.ValidationResult>
Public Function GetValidationResultAsync (value As Object, validationContext As ValidationContext, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ValidationResult)

Parameter

value
Object

Nilai yang akan divalidasi.

validationContext
ValidationContext

ValidationContext Instans yang menyediakan konteks tentang operasi validasi, seperti objek dan anggota yang sedang divalidasi. Menyediakan akses ke layanan yang diperlukan untuk melakukan validasi menggunakan IServiceProvider.

cancellationToken
CancellationToken

A CancellationToken untuk mengamati sambil menunggu tugas selesai.

Mengembalikan

mewakili Task<TResult> operasi validasi asinkron.

Ketika validasi valid, hasilnya adalah Success.

Ketika validasi tidak valid, hasilnya adalah instans .ValidationResult

Pengecualian

Atribut saat ini salah bentuk.

Kapan validationContext adalah null.

Operasi validasi dibatalkan.

Keterangan

Implementasi yang mendasar IsValidAsync(Object, ValidationContext, CancellationToken) harus mengamati pekerjaan yang disediakan cancellationToken dan berhenti segera ketika pembatalan diminta. Infrastruktur validasi menunggu semua tugas validasi dimulai sebelum kembali, sehingga implementasi yang mengabaikan pembatalan dapat menunda kegagalan dan sirkuit pendek.

Penelepon yang perlu mengikat waktu validasi harus melewati token yang dikonfigurasi untuk membatalkan setelah batas waktu, seperti dari yang dikonfigurasi CancellationTokenSource dengan CancelAfter(TimeSpan).

Berlaku untuk