关于“验证框架”,先后推出了《编程篇》、《设计篇》和《改进篇》,本不打算再写《XXX篇》的。但是今天收到两个园友的短消息,想了解一下如何定义自己的验证规则。这实际上涉及到对该“验证框架”的扩展,即如何自定义Validator和对应的ValidatorAttribute与ValidatorElementAttribute。为了让本系列看起来完整,通过《扩展篇》进行收尾。本篇我们写一个简单的Validator,用于验证字符串类型属性成员的长度是否符合要求(实际上我是直接借鉴了EnterLib中VAB下的同名Validator的设计)。

一、创建一个自定义Validator:StringLengthValidator

StringLengthValidator数据实体类型的字符串属性进行校验,确保它的长度符合要求(比如小于或者等于数据库中该列的最大长度)。这是一个非常简单的验证逻辑,只需验证大于(或者大于等于)执行的长度下限,小于(或者小于等于)指定的长度上限就可以了。由于有时候只要求被验证的字符串大(小)于指定的下(上)限,有时候被验证的字符可以包括上(下)限,有时则不可以。为了代表这样的比较方式,我定义如下RangeBoundaryType枚举。Ignore、Iclusive和Exclusive分别表示忽略、包含和不包含指定的上(下)限

enum RangeBoundaryType
   2: {
   3:     Ignore,
   4:     Inclusive,
   5:     Exclusive
   6: } 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-28
  • 2022-12-23
  • 2021-09-21
  • 2021-09-04
  • 2021-06-06
猜你喜欢
  • 2021-04-27
  • 2021-07-29
  • 2021-12-06
相关资源
相似解决方案