Enterprise Library - Validation Application Block 学习手册(最新版) Part 6

it2022-05-05  119

本文演示Enterprise Library – Validation Application Block 验证管理模块的使用,练习创建多个Rule Sets在不同场景下使用不同的Validation规则来进行数据验证。本文由 http://blog.entlib.com 开源ASP.NET博客平台小组根据EntLib HOL手册编译提供,欢迎交流。   练习六:创建并使用多个Rule Sets 下面的操作可以在练习五的基础上继续操作,或者直接打开\Enterprise Library 4.1 HOL\CS\Validation\Labs\Lab06\Before目录下的ValidationHOL.sln项目文件。该Solution包含有两个项目,分别为ValidationHOL.BusinessLogic和ValidationHOL。   1. 创建和配置一个新的、非默认的Rule Set (1)使用EntLib的配置管理工具打开app.config文件,右键点击Customer节点,选择 New | Rule Set,创建一个新的Rule Set,命名为Alternative。 (2)选择Alternative节点,和上一篇操作一样,这里只添加2个属性,分别为FirstName和LastName。 设置FirstName的String Length Validator的相关属性: LowerBound=1 LowerBoundType=Inclusive UpperBound=20   继续设置LastName的DomainValidator的相关属性,选择Domain属性,点击相应的按钮,弹出DomainValue Collection Editor对话框。     在该对话框中,分别添加EntLib, Smith, Jones, Doe等等四个DomainValue,这样限定该属性必须输入指定的属性值,如下图所示。记得操作完成后,需要保存配置文件。     2. 添加一个CheckBox到UI界面上,用来选择使用哪一个Rule Set 打开MainForm界面,添加一个新的CheckBox,设置如下属性: Name = alternativeValidation Text = alternative   如下图所示。     3. 更新MainForm类中的acceptButton_Click方法,由CheckBox决定采用哪一个Rule Set对Customer对象实例进行验证。具体代码如下。         private void acceptButton_Click(object sender, EventArgs e)         {             Customer customer = new Customer             {                 FirstName = firstNameTextBox.Text,                 LastName = lastNameTextBox.Text,                 SSN = ssnTextBox.Text,                 Address = new Address                 {                     StreetAddress = streetAddressTextBox.Text,                     City = cityTextBox.Text,                     State = stateComboBox.Text,                     ZipCode = zipCodeTextBox.Text                 }             };               ValidationResults results =                 this.alternativeValidation.Checked                     ? Validation.Validate(customer, "Alternative")                     : Validation.Validate(customer);             if (!results.IsValid)             {                 StringBuilder builder = new StringBuilder();                 builder.AppendLine("Customer is not 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 customer '" + customer.FirstName + "'",                 "Working",                 MessageBoxButtons.OK,                 MessageBoxIcon.Information);         }   4. 运行范例程序,检查是否使用了不同的Rule Set 如果不选择CheckBox,将采用上一节定义的Default Rule Set对Customer对象实例进行验证,结果和上一节是一样的。   如果选择Alternative CheckBox,将采用本节新定义的alternative Rule Set,弹出的消息对话框如下图所示。     http://www.entlib.com专业ASP.NET电子商务平台小组,欢迎你继续访问Validation Application Block学习手册。   参考文档: Validation Application Block Hands-On Labs for Enterprise Library

转载于:https://www.cnblogs.com/vibratea/archive/2010/09/15/1826702.html


最新回复(0)