Enterprise Library 3.0 体验 -- Validation Application Block (1)

     Validation Application BlockEL3.0中新加入的应用程序块,它可以借助Attribute或配置文件来轻松实现数据的有效性验证。下面通过一个简单的小例子演示如何通过Attribute进行数据验证 

1.          新建一个控制台工程: ValidationDemo1

2.          创建一个实体类:Student,并为其添加学号、姓名和年龄三个属性。

3.          添加引用: Microsoft.Practices.EnterpriseLibrary.Validation

4.          Student类中添加命名空间: Microsoft.Practices.EnterpriseLibrary.Validation

5.          为相应的属性添加验证Attribute

这里我们假设定义的数据有效格式为:
         学号:非空,长度为9位。
         姓名:非空,长度为1~10之间。
         年龄:允许为空,但是大小要在18~24岁之间。
添加Attribute后代码变为:

 1     public class Student
 2     {
 3         private string _stdNo;
 4 
 5         [NotNullValidator]
 6         [StringLengthValidator(9,9)]
 7         public string StdNo
 8         {
 9             get { return _stdNo; }
10             set { _stdNo = value; }
11         }
12         private string _name;
13 
14         [NotNullValidator]
15         [StringLengthValidator(1,10)]
16         public string Name
17         {
18             get { return _name; }
19             set { _name = value; }
20         }
21         private int _age;
22 
23         [Int32RangeValidator(18,24)]
24         public int Age
25         {
26             get { return _age; }
27             set { _age = value; }
28         }
29     }

 

6.          创建一个实例进行测试,并在这个类中引用命名空间:Microsoft.Practices.EnterpriseLibrary.Validation

 1         static void Main(string[] args)
 2         {
 3             Student student = new Student();
 4             student.StdNo = "12345678";
 5             student.Name = "xiaochen";
 6             student.Age = 20;
 7 
 8             ValidationResults results = Validation.Validate(student);
 9             if (!results.IsValid)
10             {
11                 foreach (ValidationResult result in results)
12                 {
13                     string errorMsg = "Key: {0}, Message: {1}";
14                     Console.WriteLine(string.Format(errorMsg, result.Key.ToString(), result.Message.ToString()));
15                 }
16 
17                 Console.ReadLine();
18             }
19         }

7.          察看输出结果:

将不符合验证的字段信息打印了出来,并显示不符合的地方。
将数据修改为符合数据有效性的数据,再次执行程序,则不现实任何错误信息。 

总结:

本文介绍了一种使用Validation Application Block的方法,可以通过对象浏览器察看Microsoft.Practices.EnterpriseLibrary.Validation.dll并打开Microsoft.Practices.EnterpriseLibrary.Validation命名空间,形如ValidatorAttributes的方法都是可以当作Attribute的来使用的,同时也可以定义自己的Attribute元素。

此外,如果你仅仅是通过Attribute来实现数据的验证,而并不使用配置文件验证。这种情况下,更加建议使用Validatation.ValidateFromAttributes()方法,这样可以避免实例化IConfigurationSource接口,从而在一定程度上节省了系统的资源。

posted on 2007-01-07 00:04  shenfx  阅读(815)  评论(0编辑  收藏  举报

导航