Rumah >pembangunan bahagian belakang >C++ >Bagaimana Melaksanakan Pengesahan Bersyarat Menggunakan IvalidatableObject?
Melaksanakan pengesahan bersyarat avalidatiableobject
Dalam bidang pengesahan data, antara muka IvalidatableObject memainkan peranan penting, yang membolehkan pengesahan objek dan boleh membandingkan atribut objek yang berbeza. Apabila anda perlu mengesahkan atribut tunggal dan pada masa yang sama, anda boleh secara selektif mengabaikan kegagalan pengesahan tertentu dalam senario tertentu, AvalidatiableObject menyediakan penyelesaian yang fleksibel.
Artikel ini akan memperkenalkan cara menggunakan ivalidatableObject untuk melaksanakan pengesahan bersyarat.
kaedah untuk mengesahkan atribut. Jika atribut ini dilumpuhkan, hasil yang berkesan dikembalikan dan status Validate()
dan Enabled
diabaikan. Walau bagaimanapun, jika atribut ini diaktifkan, anda akan menyemak sama ada Prop1
dan Prop2
memenuhi keperluan skop. Prop1
Prop2
Langkah -langkah pelaksanaan yang berkesan pengesahan bersyarat adalah seperti berikut:
Buat kelas pengesahan:
[Required]
Dalam kaedah [Range]
, gunakan Validate()
, periksa syarat -syarat (seperti atribut Validator.TryValidateProperty()
) untuk menentukan sama ada kegagalan pengesahan sifat -sifat tertentu perlu diabaikan. Validate()
Enable
Melaksanakan pengesahan tahap objek.
<code class="language-csharp">public class ValidateMe : IValidatableObject { [Required] public bool Enable { get; set; } [Range(1, 5)] public int Prop1 { get; set; } [Range(1, 5)] public int Prop2 { get; set; } public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) { var results = new List<ValidationResult>(); if (this.Enable) { Validator.TryValidateProperty(this.Prop1, new ValidationContext(this, null, null) { MemberName = "Prop1" }, results); Validator.TryValidateProperty(this.Prop2, new ValidationContext(this, null, null) { MemberName = "Prop2" }, results); // 附加条件验证规则 if (this.Prop1 > this.Prop2) { results.Add(new ValidationResult("Prop1 必须大于 Prop2")); } } return results; } }</code>
Atas ialah kandungan terperinci Bagaimana Melaksanakan Pengesahan Bersyarat Menggunakan IvalidatableObject?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!