zoukankan      html  css  js  c++  java
  • P28 输入验证:自定义Attribute



    对类界别的属性进行验证,也可以争对属性。。这里博主要做的是争对类级别的
    先在根目录建个文件夹叫做ValidationAttributes

    这次来个不合理的需求,让EmployeeNo不能等于FirstName

    新建类

    收下是需要继承 ValidationAttribute然后需要重写一个方法。

    重写IsValid方法。带参数ValidationContext参数的这个方法。

    参数Object value就是我们要验证的对象。


    value强转成dto对象


    或者也可以这么写。validationContext.ObjectInstance总会得到这个类的对象。

    如果用value的话,如果我作用与property属性这个界别的话,我就返回属性的值 ,作用于类的话,value就返回这个对象的值,所以value是可变化的,validationContext是不变的

    用于class级别

    运行程序测试


    为什么没有返回我们想要的错误呢,因为employeeNo有一个属性级别的错误。

    要求长度最低为10


    都改成10位的



    FirstName和LastName是通过接口验证的,

    EmployeeAddDto是我们使用的自定义Attribute进行验证的


    接口和Attribute他俩实现的效果基本是一样的。但是为什么要使用CustomAttribute呢?因为自定义的Attribute既可以作用于类级别,也可以作用于Property属性级别。
    如果属性级别的验证出现错误的话,那么这个类界别,无论是自定义的属性还是实现的validate接口,都不会被执行了。所以自定义的属性,在某些方面还是强于接口的方式的




    结束

  • 相关阅读:
    各种排序(二)
    各种排序(一)
    【游记】CSP-S2019游记
    【题解】hdu1506 Largest Rectangle in a Histogram
    【题解】CF161B Discounts
    【CSP-S膜你考】我们的可可西里
    Bzoj3675 [Apio2014]序列分割
    Bzoj3853 GCD Array
    Bzoj3876 [Ahoi2014]支线剧情
    Bzoj2324 [ZJOI2011]营救皮卡丘
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/12555559.html
Copyright © 2011-2022 走看看