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接口,都不会被执行了。所以自定义的属性,在某些方面还是强于接口的方式的




    结束

  • 相关阅读:
    数据库系统原理:范式理论
    数据库系统原理:MVCC
    数据库系统原理:悲观锁、乐观锁
    数据库系统原理:封锁
    数据库系统原理:四大隔离级别
    数据库系统原理:ACID的作用以及实现原理
    计算机网络HTTP:长连接与短连接
    计算机网络HTTP:HTTP缓存
    计算机网络HTTP:状态码
    yum安装Docker
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/12555559.html
Copyright © 2011-2022 走看看