Enterprise Library Validation Application Block Step by Step (3)

Demo3  使用客户自定义验证

客户自定义验证是程序开发人员对Validation Application Block 的功能的扩展。

任务1 :搭建用于验证的运行环境

1.         新建项目ValidationApp.CustomerValidation ,右键单击解决方案,指向“添加“,选择“新建项目”,在名称栏里输入ValidationApp.CustomerValidation 如图3.1

1

3.1 新建项目

2.         添加引用,如前面的实验一样,添加Microsoft.Practices.EnterpriseLibrary.Validation 的引用。

3.         删除项目ValidationApp.CustomerValidation 默认产生的文件类文件Class1

任务2 :添加自定义的验证类。

这里所指的自定义验证类是继承于Validator 类的,并且重载了Validator 类的一些方法。

1.     增加一个新类IDValidator 。右键单击项目ValidationApp.CustomerValidation ,指向“添加”,选择“新建项”。然后,选择“类”,在名称栏输入IDValidator, 如图3.2

2

3.2 添加类文件

2.     使用Using 语句向 IDValidator 类添加必要的引用。

using System.Text.RegularExpressions;

using Microsoft.Practices.EnterpriseLibrary.Validation;

using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

3.       IDValidation 类添加如下代码。主要定义了两个构造函数和一个DoValidate 重载函数。这些代码可以根据验证的需要改动,是自己定义的。

public class IDValidator :Validator <string >

    {

        public IDValidator(string tag)

            : this (tag, false )

        {       }

        public IDValidator(string tag, bool ignoreHypens)

            : base (string .Empty, tag)

        {

            this .ignoreHypens = ignoreHypens;

        }

        private bool ignoreHypens;

        protected override string   DefaultMessageTemplate

        {

               get { throw new NotImplementedException (); }

         }

        static Regex IDRegex = new Regex (@"^[0-9]*[1-9][0-9]*$" );

        protected override void   DoValidate(string objectToValidate, object currentTarget, string key, ValidationResults validationResults)

        {

            Match match = 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.     添加引用。

using Microsoft.Practices.EnterpriseLibrary.Validation;

using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

3.     按照下面的格式添加代码。

public class IDValidatorAttribute :ValidatorAttribute

        {

            protected override Validator DoCreateValidator(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

    {

        public string UserName{ get ; set ; }

        public string password{ get ; set ; }

        [IDValidator ]

        public string IDcard{ get ; set ; }

        public string email{ get ; set ; }

    }

任务5 :验证。

3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Daniel的技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值