Rumah >pembangunan bahagian belakang >C++ >Bagaimana Melaksanakan Pengesahan Bersyarat Menggunakan IvalidatableObject?

Bagaimana Melaksanakan Pengesahan Bersyarat Menggunakan IvalidatableObject?

Barbara Streisand
Barbara Streisandasal
2025-01-28 11:31:08693semak imbas

How to Implement Conditional Validation Using 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:
    Tentukan kelas yang melaksanakan antara muka IvalidatableObject.
  1. Tambah ciri -ciri pengesahan atribut: Gunakan ciri -ciri pengesahan, seperti
  2. dan
  3. untuk menentukan peraturan pengesahan atribut tunggal. Kaedah validasi (): [Required] Dalam kaedah [Range], gunakan
  4. untuk mengesahkan atribut tunggal.
  5. Pemprosesan Pengesahan Bersyarat: Di dalam kaedah Validate(), periksa syarat -syarat (seperti atribut Validator.TryValidateProperty()) untuk menentukan sama ada kegagalan pengesahan sifat -sifat tertentu perlu diabaikan.
  6. Berikut adalah contoh: Validate() Enable
  7. Objek pengesahan:
Panggil

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>
    Dengan mengikuti langkah -langkah ini, anda boleh menggunakan fungsi pengesahan bersyarat IvalidatableObject untuk membuat mekanisme pengesahan data yang kuat dan fleksibel.

Atas ialah kandungan terperinci Bagaimana Melaksanakan Pengesahan Bersyarat Menggunakan IvalidatableObject?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn