Enterprise Library Validation Application Block Step by Step (3)
来源:互联网 发布:世界大数据公司排名 编辑:程序博客网 时间:2024/04/30 11:17
Demo3 使用客户自定义验证
客户自定义验证是程序开发人员对Validation Application Block的功能的扩展。
任务1:搭建用于验证的运行环境
1. 新建项目ValidationApp.CustomerValidation,右键单击解决方案,指向“添加“,选择“新建项目”,在名称栏里输入ValidationApp.CustomerValidation如图3.1
图3.1 新建项目
2. 添加引用,如前面的实验一样,添加Microsoft.Practices.EnterpriseLibrary.Validation的引用。
3. 删除项目ValidationApp.CustomerValidation默认产生的文件类文件Class1。
任务2:添加自定义的验证类。
这里所指的自定义验证类是继承于Validator类的,并且重载了Validator类的一些方法。
1. 增加一个新类IDValidator。右键单击项目ValidationApp.CustomerValidation,指向“添加”,选择“新建项”。然后,选择“类”,在名称栏输入IDValidator,如图3.2
图3.2 添加类文件
2. 使用Using语句向 IDValidator类添加必要的引用。
using System.Text.RegularExpressions;
usingMicrosoft.Practices.EnterpriseLibrary.Validation;
usingMicrosoft.Practices.EnterpriseLibrary.Validation.Validators;
3. 向IDValidation类添加如下代码。主要定义了两个构造函数和一个DoValidate重载函数。这些代码可以根据验证的需要改动,是自己定义的。
public class IDValidator:Validator<string>
{
publicIDValidator(string tag)
: this(tag, false)
{ }
publicIDValidator(string tag, bool ignoreHypens)
: base(string.Empty,tag)
{
this.ignoreHypens= ignoreHypens;
}
privatebool ignoreHypens;
protectedoverride string DefaultMessageTemplate
{
get{ throw new NotImplementedException(); }
}
staticRegex IDRegex = newRegex(@"^[0-9]*[1-9][0-9]*$");
protectedoverride void DoValidate(stringobjectToValidate, object currentTarget, string key, ValidationResultsvalidationResults)
{
Matchmatch = IDRegex.Match(objectToValidate);
if((objectToValidate.Length<0)||(objectToValidate.Length >= 18))
{
if (!match.Success)
{
LogValidationResult(validationResults, "身份证号必须是数字", currentTarget, key);
}
}
else
{
LogValidationResult(validationResults,"身份证号码必须是18位", currentTarget, key);
}
}
}
任务3:添加验证属性。
1. 向IDValiation.CustomerValidation项目添加新类IDValidatorAttribute。
2. 添加引用。
usingMicrosoft.Practices.EnterpriseLibrary.Validation;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;
3. 按照下面的格式添加代码。
public class IDValidatorAttribute:ValidatorAttribute
{
protectedoverride ValidatorDoCreateValidator(Type targetType)
{
return new IDValidator(this.Tag);
}
}
任务4:在项目中使用自定义验证
通过以上实验的配置。现在,我们就可以像使用Validation Application Block自带的验证方法一样使用[IDValidator]。不过,本例的其他的验证还是需要配置的,这里就不一一介绍了。下面我们开始使用[IDValidator]。
1. 在ValidationApp.UserValidation项目中添加对ValidationApp.Customer项目的引用。展开ValidationApp.UserValidation项目的“引用文件夹”,右键单击“引用”,选择“添加引用”,然后指向“项目”菜单,选择ValidationApp.Customer项目,单击“添加”。
2. 打开User.cs文件。
3. 使用using指令添加引用。
using ValidationApp.CustomerValidation;
4. 更新User.cs文件。
public class User
{
publicstring UserName{ get;set; }
publicstring password{ get;set; }
[IDValidator]
publicstring IDcard{ get;set; }
publicstring email{ get;set; }
}
任务5:验证。
- Enterprise Library Validation Application Block Step by Step (3)
- Enterprise Library Validation Application Block Step by Step (1)
- Enterprise Library Validation Application Block Step by Step (2)
- Enterprise Library Library Data Access Application Block Step By Step
- Enterprise Library Logging Application Block Step by Step(1)
- Enterprise Library Logging Application Block Step by Step(2)
- Enterprise Library 3.0 体验:使用配置文件的Validation Application Block
- Microsoft Enterprise Library 5.0 系列(三) Validation Application Block (初级)
- Microsoft Enterprise Library 5.0 系列(三) Validation Application Block (高级)
- Microsoft Enterprise Library 5.0 系列(三) Validation Application Block (初级)
- Microsoft Enterprise Library 5.0 系列(三) Validation Application Block (高级)
- Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
- Enterprise Library Step By Step系列(二):配置应用程序块——进阶篇
- Enterprise Library Step By Step系列(三):数据访问程序块——入门篇
- Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇
- Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
- Enterprise Library Step By Step系列(二):配置应用程序块——进阶篇
- Enterprise Library Step By Step系列(三):数据访问程序块——入门篇
- Linux服务器上用netstat查看的11种网络状态及长连接讨论
- jquery插件开发方法
- mantis统计报表和图形报表出现乱码问题的解决方法(摘录)
- 大数据量下快速获取 SQL Server 数据库表记录数的方法
- 计算页面停留时间
- Enterprise Library Validation Application Block Step by Step (3)
- windows命令行常用命令
- 网站页面自动跳转实现方法PHP、JSP等
- winform下的treeview的加载和checkbox的设置
- 汉字转化成ACSII
- GenericServlet
- Eclipse控制台不限日志行数
- 十六.业务流程管理及重组BPM/BPR :Rebuild
- 两周了