Enterprise Library - Validation Application Block 学习手册(最新版) Part 1
2010-09-15 09:58
531 查看
本文演示Enterprise Library – Validation Application Block 验证管理模块的使用。总共有13个练习,前面11个练习在Windows Form应用程序处理用户输入的数据,赋值给Customer和Address业务对象。Validation Application Block用来在处理数据之前,验证创建的业务对象。第12个练习演示如何使用Validation Application Block集成ASP.NET验证特性,验证ASP.NET控件值。在第13个练习中,APS.NET Application 作为Windows Communication Foundation(WCF)服务前端,利用Validation Application Block集成WCF验证特性,在Server端验证服务参数。本文由http://blog.entlib.com 开源ASP.NET博客平台小组根据EntLib HOL手册编译提供,欢迎交流。
练习一:添加验证
本文练习对业务对象实施验证操作,和对一个简单的数据录入应用程序使用using 属性指定验证规则(Validation Rule)。
1. 首先打开\Enterprise Library 4.1 HOL\CS\Validation\Labs\Lab01\Before目录下的ValidationHOL.sln项目文件。该Solution包含有两个项目,分别为ValidationHOL.BusinessLogic和ValidationHOL。
因为现在还没有对ValidationHOL项目做任何更改,在运行范例程序,点击Accept按钮时,没有执行任何验证操作,应用程序则试图处理无效的数据。
本文主要包含如下内容:
(1)添加验证属性到业务类中;
(2)对业务对象实例调用验证规则;
针对特定类型的验证不会自动执行,需要在Client端显式调用。
2. 为ValidationHOL.BusinessLogic 项目添加Microsoft.Practices.EnterpriseLibrary.Validation.dll 程序集的引用。
打开ValidationHOL.BusinessLogic 项目中Customer.cs文件,添加对Validation 命名空间的引用。
[align=left]using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;[/align]
3. 为Customer类的属性添加validation特征。
[align=left] public class Customer[/align]
[align=left] {[/align]
[align=left] [StringLengthValidator(1, 25)][/align]
[align=left] public string FirstName { get; set; }[/align]
[align=left] [StringLengthValidator(1, 25)][/align]
[align=left] public string LastName { get; set; }[/align]
[align=left] [RegexValidator(@"^\d\d\d-\d\d-\d\d\d\d$")][/align]
[align=left] public string SSN { get; set; }[/align]
[align=left] public Address Address { get; set; }[/align]
}
4. 为Address类的属性添加validation特征。
打开Address.cs文件,添加如下命名空间的引用。
[align=left]using Microsoft.Practices.EnterpriseLibrary.Validation;[/align]
[align=left]using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;[/align]
进一步修改Address类,如下所示;
[align=left] public class Address[/align]
[align=left] {[/align]
[align=left] [StringLengthValidator(1, 50)][/align]
[align=left] public string StreetAddress { get; set; }[/align]
[align=left] [ValidatorComposition(CompositionType.And)][/align]
[align=left] [StringLengthValidator(1, 30)][/align]
[align=left] [ContainsCharactersValidator("sea", ContainsCharacters.All)][/align]
[align=left] public string City { get; set; }[/align]
[align=left] [StringLengthValidator(2, 2)][/align]
[align=left] public string State { get; set; }[/align]
[align=left] [RegexValidator(@"^\d{5}$")][/align]
[align=left] public string ZipCode { get; set; }[/align]
}
上述代码中,针对City属性定义了多个validation attributes。当针对某一个类的属性定义多个validation attributes时,需要创建一个组合的验证特性(composite validator),设置为多个validation attributes之间是and或or 的关系。当为and时,需要所有的validation attributes验证通过时,才验证通过。如果为or时,则只需要一个validation attribute符合,就验证通过。ContainsCharactersValidator 要求City属性中必须同时包含有s、e、a三个字符。
5. 下面针对业务对象实例调用验证
Validation必须通过代码显式调用,除非一些特殊的机制,如Policy Injection Application Block,可以用来截取方法调用。
调用验证的结果是生成一个ValidationResults实例,该实例表示验证是否成功。如果没有成功,则包含每一个验证规则失败的ValidationResult实例集合。
(1)为ValidationHOL项目添加对Microsoft.Practices.EnterpriseLibrary.Validation.dll程序集的引用。
(2)打开MainForm.cs文件,添加如下命名空间的引用。
using Microsoft.Practices.EnterpriseLibrary.Validation;
(3)更新MainForm类的acceptButton_Click方法,调用validation,如验证失败,则显示一个错误消息。
下面运行范例程序,检查验证规则是否生效。
首先,文本框不输入任何内容,点击Accept按钮,将弹出一个错误信息窗口,如下图所示。
继续按照验证规则的要求,输入正确的Customer数据,点击Accept按钮,检查是否通过验证规则。
http://www.entlib.com专业ASP.NET电子商务平台小组,欢迎你继续访问Validation Application Block学习手册。
参考文档:
Validation Application Block Hands-On Labs for Enterprise Library
练习一:添加验证
本文练习对业务对象实施验证操作,和对一个简单的数据录入应用程序使用using 属性指定验证规则(Validation Rule)。
1. 首先打开\Enterprise Library 4.1 HOL\CS\Validation\Labs\Lab01\Before目录下的ValidationHOL.sln项目文件。该Solution包含有两个项目,分别为ValidationHOL.BusinessLogic和ValidationHOL。
因为现在还没有对ValidationHOL项目做任何更改,在运行范例程序,点击Accept按钮时,没有执行任何验证操作,应用程序则试图处理无效的数据。
本文主要包含如下内容:
(1)添加验证属性到业务类中;
(2)对业务对象实例调用验证规则;
针对特定类型的验证不会自动执行,需要在Client端显式调用。
2. 为ValidationHOL.BusinessLogic 项目添加Microsoft.Practices.EnterpriseLibrary.Validation.dll 程序集的引用。
打开ValidationHOL.BusinessLogic 项目中Customer.cs文件,添加对Validation 命名空间的引用。
[align=left]using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;[/align]
3. 为Customer类的属性添加validation特征。
[align=left] public class Customer[/align]
[align=left] {[/align]
[align=left] [StringLengthValidator(1, 25)][/align]
[align=left] public string FirstName { get; set; }[/align]
[align=left] [StringLengthValidator(1, 25)][/align]
[align=left] public string LastName { get; set; }[/align]
[align=left] [RegexValidator(@"^\d\d\d-\d\d-\d\d\d\d$")][/align]
[align=left] public string SSN { get; set; }[/align]
[align=left] public Address Address { get; set; }[/align]
}
4. 为Address类的属性添加validation特征。
打开Address.cs文件,添加如下命名空间的引用。
[align=left]using Microsoft.Practices.EnterpriseLibrary.Validation;[/align]
[align=left]using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;[/align]
进一步修改Address类,如下所示;
[align=left] public class Address[/align]
[align=left] {[/align]
[align=left] [StringLengthValidator(1, 50)][/align]
[align=left] public string StreetAddress { get; set; }[/align]
[align=left] [ValidatorComposition(CompositionType.And)][/align]
[align=left] [StringLengthValidator(1, 30)][/align]
[align=left] [ContainsCharactersValidator("sea", ContainsCharacters.All)][/align]
[align=left] public string City { get; set; }[/align]
[align=left] [StringLengthValidator(2, 2)][/align]
[align=left] public string State { get; set; }[/align]
[align=left] [RegexValidator(@"^\d{5}$")][/align]
[align=left] public string ZipCode { get; set; }[/align]
}
上述代码中,针对City属性定义了多个validation attributes。当针对某一个类的属性定义多个validation attributes时,需要创建一个组合的验证特性(composite validator),设置为多个validation attributes之间是and或or 的关系。当为and时,需要所有的validation attributes验证通过时,才验证通过。如果为or时,则只需要一个validation attribute符合,就验证通过。ContainsCharactersValidator 要求City属性中必须同时包含有s、e、a三个字符。
5. 下面针对业务对象实例调用验证
Validation必须通过代码显式调用,除非一些特殊的机制,如Policy Injection Application Block,可以用来截取方法调用。
调用验证的结果是生成一个ValidationResults实例,该实例表示验证是否成功。如果没有成功,则包含每一个验证规则失败的ValidationResult实例集合。
(1)为ValidationHOL项目添加对Microsoft.Practices.EnterpriseLibrary.Validation.dll程序集的引用。
(2)打开MainForm.cs文件,添加如下命名空间的引用。
using Microsoft.Practices.EnterpriseLibrary.Validation;
(3)更新MainForm类的acceptButton_Click方法,调用validation,如验证失败,则显示一个错误消息。
下面运行范例程序,检查验证规则是否生效。
首先,文本框不输入任何内容,点击Accept按钮,将弹出一个错误信息窗口,如下图所示。
继续按照验证规则的要求,输入正确的Customer数据,点击Accept按钮,检查是否通过验证规则。
http://www.entlib.com专业ASP.NET电子商务平台小组,欢迎你继续访问Validation Application Block学习手册。
参考文档:
Validation Application Block Hands-On Labs for Enterprise Library
相关文章推荐
- Enterprise Library - Validation Application Block 学习手册(最新版) Part 5
- Enterprise Library - Validation Application Block 学习手册(最新版) Part 6
- Enterprise Library - Validation Application Block 学习手册(最新版) Part 7
- Enterprise Library - Validation Application Block 学习手册(最新版) Part 2
- Enterprise Library - Unity Application Block 学习手册(最新版) Part 1
- Enterprise Library - Unity Application Block 学习手册(最新版) Part 2
- Enterprise Library - Unity Application Block 学习手册(最新版) Part 3
- Enterprise Library – Data Access Application Block 学习手册(最新版)- Part 1
- Enterprise Library - Unity Application Block 学习手册(最新版) Part 4
- Enterprise Library – Data Access Application Block 学习手册(最新版)- Part 2
- Enterprise Library – Data Access Application Block 学习手册(最新版)- Part 3
- Enterprise Library - Exception Handling Application Block 学习手册(最新版)Part 1
- Enterprise Library - Caching Application Block 学习手册(最新版) Part 1
- Enterprise Library - Exception Handling Application Block 学习手册(最新版) Part 2
- Enterprise Library - Caching Application Block 学习手册(最新版) Part 2
- Enterprise Library - Logging Application Block 学习手册(最新版) Part 1
- Enterprise Library - Caching Application Block 学习手册(最新版) Part 3
- Enterprise Library - Logging Application Block 学习手册(最新版) Part 2
- Enterprise Library - Cryptography Application Block 学习手册(最新版) Part 2
- Enterprise Library - Logging Application Block 学习手册(最新版) Part 3