Enterprise Library Validation Application Block Step by Step (1)

Demo1  在类代码中实现 Validation Application Block 的功能

步骤

任务 1 :新建一个 windows Form 项目。

从开始菜单选择“所有程序”,指向“ Microsoft Visual Studio 2008 , 单击打开。在打开 VS 界面,依次选择“文件 --- 新建 --- 项目”,在弹出的窗体中选择“ Windows 窗体应用程序”,输入名称为“ ValidationApp ”,单击“确定”。如图 1.1 所示。

1

1.1 新建项目

任务 2 :设计界面。

从工具箱托 4 TextBox,4 label 和一个 button 按钮到窗体上,把 textBox Name 分别设置为 txtName,txtPwd,txtID,txtEmail, 对应的四个 Label 控件的名称为用户名、密码、身份证号、邮件。 Button 按钮的 name 属性设置为 btnOK, 名称改为确认。将窗体的名称改为用户登录, name 属性设置为 FormLogin 。如图 1.2

2

1.2 界面设计

任务 3 :添加 User

右键单击项目 ValidationApp ,选择 添加 -- à 新建项 。在弹出的窗体中选择类文件,将名称更改为 User.cs ,然后单击添加。如图 1.3

3

1.3 添加 User

User 类访问修饰符设置为 Public, 并向 User 类中添加以下代码。

namespace ValidationApp

{

    public class User

    {

        public string UserName{ get ; set ; }

         public string password{ get ; set ; }

        public string IDcard{ get ; set ; }

        public string email{ get ; set ; }

    }

}

任务4 :添加引用。

要使用Enterprise library 的标准Validation Application Block 来验证,需添加Microsoft.Practices.EnterpriseLibrary.Validation 的引用。

右键单击引用文件夹,指向添加引用,单击浏览,按如下相对路径“../application/lib/ ”选择Microsoft.Practices.EnterpriseLibrary.Validation, 然后按下确定。如图1.5

4

1.5 添加引用

使用 using 指令将引用添加到 user 类中。

using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

使用 using 指令将引用添加到 FormLogin.cs 文件中。

using System.Globalization;

using Microsoft.Practices.EnterpriseLibrary.Validation;

任务5: 添加必要的验证代码。

1.     formLogin 窗体添加如下代码,双击“确认”按钮, 添加btnOK 的处理代码。

private void btnOK_Click(object sender, EventArgs e)

        {

            User user = new User

            {

               UserName =txtName .Text ,

              password =txtPwd .Text ,

              IDcard =txtID .Text ,

              email =txtEmail .Text

            };

            ValidationResults results = Validation .Validate(user);

            if (!results.IsValid)

            {

                StringBuilder builder = new StringBuilder ();

                builder.AppendLine("user is no valid!" );

                foreach (ValidationResult result in results)

                {

                    builder.AppendLine(string .Format (CultureInfo .CurrentCulture ,"{0}:{1}" ,result .Key ,result .Message ));

                }

                MessageBox .Show(

                    this ,

                     builder .ToString (),

                    "Error" ,

                    MessageBoxButtons .OK,

                    MessageBoxIcon .Error);

                return ;

            }

 

            MessageBox .Show(

                this ,

                "Processing user '" + user .UserName  + "'" ,

                "Working" ,

                MessageBoxButtons .OK,

                MessageBoxIcon .Information);

        }

2.     User.cs 类添加验证的代码。

  public class User

  {

        [NotNullValidator ]

        public string UserName{ get ; set ; } [ValidatorComposition (Microsoft.Practices.EnterpriseLibrary.Validation.CompositionType .And )]

        [StringLengthValidator (6,12)]

        [NotNullValidator ]

        [RegexValidator (@"^(-?/d+[.]?/d+)$" )]

        public string password{ get ; set ; }

        [StringLengthValidator (18,18)]

        public string IDcard{ get ; set ; }

    [RegexValidator (@"^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[/.][a-z]{2,3}([/.][a-z]{2})?$" )]       

        public string email{ get ; set ; }

}

 

运行界面如下图1.6

5

1.6 运行界面

我们可以看到,验证后的消息都是由系统自动产生的。在这里,我们的下一个任务就是定义自己的验证消息。

 

任务 6 :定义客户验证消息。

1. 创建资源文件。(用于存储我们定义的消息)。

右键单击 ValidationApp 项目,选择属性。在打开的窗口中选择“资源”,并输入验证消息。如图 1.7 创建默认的资源文件。

验证消息如下表:

名称

用户名

用户名不能为空

密码

密码由 6—12 位的字母和数字组成

身份证号码

18 位的数字组成

电子邮件

必须是正确的电子邮件的格式

 

7

如图 1.7 创建默认的资源文件

3.       使用资源文件更新 User 类的验证消息。

首先使用 using 指令添加引用到 user.cs 类中。

using ValidationApp.Properties ;

更改代码如下所示:

public class User

    {

    [ValidatorComposition (Microsoft.Practices.EnterpriseLibrary.Validation.CompositionType .And)]

        [NotNullValidator ]

        [StringLengthValidator (1,10,MessageTemplateResourceType =typeof (Resources ),MessageTemplateResourceName =" 用户名" )]

         public string UserName{ get ; set ; }

        [ValidatorComposition (Microsoft.Practices.EnterpriseLibrary.Validation.CompositionType .And)]

        [StringLengthValidator (6, 12, MessageTemplateResourceType = typeof (Resources ), MessageTemplateResourceName = " 密码" )]

        [RegexValidator (@"^[A-Za-z0-9]+$" , MessageTemplateResourceType = typeof (Resources ), MessageTemplateResourceName = " 密码" )]

        public string password{ get ; set ; }

        [ValidatorComposition (Microsoft.Practices.EnterpriseLibrary.Validation.CompositionType .And )]

        [StringLengthValidator (18, 18, MessageTemplateResourceType = typeof (Resources ), MessageTemplateResourceName = " 身份证号码" )]

        [RegexValidator (@"^[0-9]*[1-9][0-9]*$" , MessageTemplateResourceType = typeof (Resources ), MessageTemplateResourceName = " 身份证号码" )]

        public string IDcard{ get ; set ; }

        [RegexValidator (@"^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[/.][a-z]{2,3}([/.][a-z]{2})?$" ,MessageTemplateResourceType =typeof (Resources ),MessageTemplateResourceName =" 电子邮件" )]       

        public string email{ get ; set ; }

}

任务7 :验证,如图1.8

8

 

到这里,程序已经实现了验证的功能。在文件夹中可以找到已成的文件,可以对照运行,测试。

 

  • 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、付费专栏及课程。

余额充值