昨天晚上突发奇想,弄了一个简易版的验证框架,用于进行数据实体的验证。目前仅仅实现基于属性的声明式的验证,即通过自定义特性(Custom Attribute)的方式将相应的Validator应用到对应的属性上,并设置相应的验证规则。本篇文章分上下两篇,上篇介绍如果来使用这个验证框架,《下篇》介绍背后的设计原理和具体实现。
我们先看看一个最简单的验证规则如何应用到对应的实体类型上。在这里我们模拟一个有趣的场景:找对象,不论是找男朋友还是女朋友,还是不男不女的朋友,都具有一定的标准。在这里我们把这些标准表示成“验证规则”。为了简单,我们仅仅验证对方的年龄是否符合我们的要求,为此我定义了如下一个简单的Mate类型:
class Mate
2: {
int Age { get; set; }
int age)
5: {
this.Age = age;
7: }
8: }