Enterprise Library Validation Application Block Step by Step (1)
2009-10-22 17:12
363 查看
Demo1
在类代码中实现
Validation Application Block
的功能
步骤
任务
1
:新建一个
windows
Form
项目。
从开始菜单选择“所有程序”,指向“
Microsoft Visual
Studio 2008”
,
单击打开。在打开
VS
界面,依次选择“文件
---
新建
---
项目”,在弹出的窗体中选择“
Windows
窗体应用程序”,输入名称为“
ValidationApp
”,单击“确定”。如图
1.1
所示。
图
1.1
新建项目
任务
2
:设计界面。
从工具箱托
4
个
TextBox,4
个
label
和一个
button
按钮到窗体上,把
textBox
的
Name
分别设置为
txtName,txtPwd,txtID,txtEmail,
对应的四个
Label
控件的名称为用户名、密码、身份证号、邮件。
Button
按钮的
name
属性设置为
btnOK,
名称改为确认。将窗体的名称改为用户登录,
name
属性设置为
FormLogin
。如图
1.2
。
图
1.2
界面设计
任务
3
:添加
User
类
。
右键单击项目
ValidationApp
,选择
”
添加
--
à
新建项
”
。在弹出的窗体中选择类文件,将名称更改为
User.cs
,然后单击添加。如图
1.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
。
图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
。
图
1.6
运行界面
我们可以看到,验证后的消息都是由系统自动产生的。在这里,我们的下一个任务就是定义自己的验证消息。
任务
6
:定义客户验证消息。
1.
创建资源文件。(用于存储我们定义的消息)。
右键单击
ValidationApp
项目,选择属性。在打开的窗口中选择“资源”,并输入验证消息。如图
1.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
。
到这里,程序已经实现了验证的功能。在文件夹中可以找到已成的文件,可以对照运行,测试。
在类代码中实现
Validation Application Block
的功能
步骤
任务
1
:新建一个
windows
Form
项目。
从开始菜单选择“所有程序”,指向“
Microsoft Visual
Studio 2008”
,
单击打开。在打开
VS
界面,依次选择“文件
---
新建
---
项目”,在弹出的窗体中选择“
Windows
窗体应用程序”,输入名称为“
ValidationApp
”,单击“确定”。如图
1.1
所示。
图
1.1
新建项目
任务
2
:设计界面。
从工具箱托
4
个
TextBox,4
个
label
和一个
button
按钮到窗体上,把
textBox
的
Name
分别设置为
txtName,txtPwd,txtID,txtEmail,
对应的四个
Label
控件的名称为用户名、密码、身份证号、邮件。
Button
按钮的
name
属性设置为
btnOK,
名称改为确认。将窗体的名称改为用户登录,
name
属性设置为
FormLogin
。如图
1.2
。
图
1.2
界面设计
任务
3
:添加
User
类
。
右键单击项目
ValidationApp
,选择
”
添加
--
à
新建项
”
。在弹出的窗体中选择类文件,将名称更改为
User.cs
,然后单击添加。如图
1.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
。
图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
。
图
1.6
运行界面
我们可以看到,验证后的消息都是由系统自动产生的。在这里,我们的下一个任务就是定义自己的验证消息。
任务
6
:定义客户验证消息。
1.
创建资源文件。(用于存储我们定义的消息)。
右键单击
ValidationApp
项目,选择属性。在打开的窗口中选择“资源”,并输入验证消息。如图
1.7
创建默认的资源文件。
验证消息如下表:
名称 | 值 |
用户名 | 用户名不能为空 |
密码 | 密码由 6—12 位的字母和数字组成 |
身份证号码 | 由 18 位的数字组成 |
电子邮件 | 必须是正确的电子邮件的格式 |
如图
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
。
到这里,程序已经实现了验证的功能。在文件夹中可以找到已成的文件,可以对照运行,测试。
相关文章推荐
- Enterprise Library Validation Application Block Step by Step (3)
- Enterprise Library Validation Application Block Step by Step (2)
- Enterprise Library Logging Application Block Step by Step(1)
- Enterprise Library Library Data Access Application Block Step By Step
- Enterprise Library Logging Application Block Step by Step(2)
- Enterprise Library Step By Step系列(十六):使用AppSetting Application Block
- Microsoft Enterprise Library 5.0 系列(三) Validation Application Block (初级)
- Using the Enterprise Library Validation Application Block in ASP.NET - Part I
- Using the Enterprise Library Validation Application Block in ASP.NET - Part II
- Microsoft Enterprise Library 5.0 系列(三) Validation Application Block (高级)
- Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级)
- Enterprise Library Policy Injection Application Block(5.0) 函数调用链整理
- Microsoft Enterprise Library 5.0 系列教程(五) Data Access 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系列(十一):异常处理应用程序块——入门篇