`

微软企业库5.0学习笔记(四十三)数据验证模块

阅读更多

  概况

  任何接受用户或者是其他系统输入的应用,一定要确保信息是合法的,符合特定的规则。例如:在处理一个订单的时候,需要检查客户的电话号码一定要是数字。另外,如果验证失败,需要返回表明错误的信息。

  企业库的验证模块允许开发者实现结构化的,易维护的验证方案。另外,验证模块允许在下面的技术中使用:

  •   ASP.NET
  •   Windows Communication Foundation(WCF)
  •   Windwos Presentation Foundation(WPF)
  •   Windows Forms

  企业库的验证模块是用来验证对象的,不是用来验证UI的控件的。可以验证任何地方的对象。

  你可以用下面的方式定义验证规则,并且实施验证:

  •   在配置文件中为指定的类定义规则集合。
  •   通过在对象的成员上添加attribute。
  •   在代码中添加自验证。
  •   用代码创建validators实例,然后执行验证命令。

  实例代码

 

代码
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->using Microsoft.Practices.EnterpriseLibrary.Validation;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;
public class Customer
{
  [StringLengthValidator(
020)]
  
public string CustomerName;
    
  
public Customer(string customerName)
  {
    
this.CustomerName = customerName;
  }
}

public class MyExample
{
  
private ValidatorFactory factory;

  
public MyExample(ValidatorFactory valFactory)
  {
    factory 
= valFactory;
  }

  
public void MyMethod()
  {
    Customer myCustomer 
= new Customer("A name that is too long");
    Validator
<Customer> customerValidator 
                        
= factory.CreateValidator<Customer>();

    
// Validate the instance to obtain a collection of validation errors.
    ValidationResults r = customerValidator.Validate(myCustomer);
    
if (!r.IsValid)
    {
      
throw new InvalidOperationException("Validation error found.");
    }
  }
}
  

 

  使用验证模块的好处

  •   维护一致的验证体验
  •   可以验证大部分的.NET标准类型。
  •   允许你通过配置、attribute、代码创建验证规则。
  •   允许同一个类关联多个验证规则集合。
  •   在验证对象的时候,可以应用一个或者多个验证规则集合。
  •   可以和ASP.NET,WCF,WPF,WINDOWS FORMS整合。

  添加程序集引用

  添加Microsoft.Practices.EnterpriseLibrary.Validation.dll

  添加

  

  • Microsoft.Practices.EnterpriseLibrary.Common.dll
  • Microsoft.Practices.ServiceLocation.dll
  • Microsoft.Practices.Unity.dll
  • Microsoft.Practices.Unity.Interception.dll

     

      

    • Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WinForms.dll
    • Microsoft.Practices.EnterpriseLibrary.Validation.Integration.AspNet.dll
    • Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WPF.dll
    • Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WCF.dll
      <!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->using Microsoft.Practices.EnterpriseLibrary.Validation;
      using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

       

        

      

      验证模块的使用

      验证模块包括一个名为validators的类,从validator类继承。还有一个泛型版本validator<T>。

      每一个验证都和一个特定的类型关联。例如:StringLengthValidator类用来检查string是否在预定的长度范围。

      有四种方法可以关联验证类和特定的类型:

    •   配置文件中配置
    •   使用attribute
    •   同时使用配置文件和attribute
    •   使用自验证,在需要验证的对象中包含验证逻辑

      验证类

    •   And Composite Validator

    Class Name: AndCompositeValidator

    Attribute Name: ValidatorCompositionAttribute

    Configuration tool name: And Composite Validator

      

    •   Contains Characters Validator

      

    Class Name: ContainsCharactersValidator

    Attribute Name: ContainsCharactersValidatorAttribute

    Configuration tool name: Contains Characters Validator

    •    Date Time Range Validator
    •   Domain Validator
    •   Enum Conversion Validator
    •   Not Null Validator
    •   Object Collection Validator
    •   Object Validator
    •   Or Composite Validator
    •   Property Comparison Validator
    •   Range Validator
    •   Regular Expression Validator
    •   Relative Date Time Validator
    •   String Length Validator
    •   Type Conversion Validator
    •   Single Member Validators

     

      

    分享到:
    评论

    相关推荐

      微软企业库5.0_学习之路

      ### 微软企业库5.0缓存模块详解 #### 一、缓存的重要性与应用场景 缓存技术作为提升应用程序性能的重要手段之一,在现代软件开发中占据着举足轻重的地位。合理的缓存策略不仅可以显著提高应用响应速度,还能有效...

      [EntLib]微软企业库5.0 学习之路——第六步、使用Validation模块进行服务器端数据验证

      【微软企业库5.0 学习之路——第六步、使用Validation模块进行服务器端数据验证】 微软企业库5.0是微软提供的一套强大的应用程序框架,用于帮助开发者更有效地实现常见的软件开发任务,如日志记录、配置管理、数据...

      微软企业库5.0【EnterpriseLibrary5.0 – May2011】

      微软企业库5.0是该系列的一个重要版本,发布于2011年5月,它为.NET Framework提供了强大的应用程序基础架构服务。 该库主要由以下几个核心组件构成: 1. **数据访问应用块(Data Access Application Block)**:...

      微软企业库5.0学习之路

      ### 微软企业库5.0学习之路 #### 第一步:基本入门 企业库是由微软提供的一个强大的开发框架,主要用于解决企业级应用开发中的常见问题。企业库5.0相较于之前的版本进行了诸多改进,其中最重要的一项是引入了依赖...

      微软企业库5.0操作日志和缓存模块

      在微软企业库5.0中,缓存管理模块提供了对数据缓存的支持,允许开发者将常用数据存储在内存中,避免频繁的数据库查询。这降低了系统的I/O负担,提升了用户体验。该模块支持多种缓存提供程序,如System.Web.Caching...

      微软企业库5.0 学习之路(全集)

      微软企业库5.0(Enterprise Library 5.0)是微软公司发布的一套用于.NET Framework的应用程序开发框架,旨在帮助开发者更高效、更规范地管理常见的软件开发问题,特别是关注于应用程序的基础设施部分,如数据访问、...

      微软企业库 5.0 源码

      总的来说,微软企业库5.0是一个强大的工具集,它将常见的企业级开发任务封装成可重用的模块,降低了开发复杂性,并提高了代码的可维护性。对于.NET开发者而言,无论是直接使用这些应用块还是借鉴其设计思想,都是...

      良葛格java jdk 5.0学习笔记

      良葛格java jdk 5.0学习笔记,良葛格java jdk 5.0学习笔记.zip,良葛格java jdk 5.0学习笔记.zip,良葛格java jdk 5.0学习笔记.zip,良葛格java jdk 5.0学习笔记.zip,良葛格java jdk 5.0学习笔记.zip。

      [EntLib]微软企业库5.0 学习之路——第五步、介绍EntLib.Validation模块信息、验证器的实现层级及内置的各种验证器的使用方法——上篇

      **EntLib.Validation**(微软企业库中的验证模块)便是这样一款工具,它为.NET开发者提供了一套全面的数据验证解决方案。 EntLib.Validation模块不仅支持常见的验证规则,如字符串长度、日期范围、类型转换、正则...

      微软企业库5.0

      微软企业库(Enterprise Library)是微软提供的一套用于.NET Framework应用程序开发的开源工具集,它旨在简化常见的软件设计模式,并提供了实现这些模式的现成组件。这个版本是5.0,通常称为“Microsoft Enterprise ...

      微软企业库5.0说明文档,英文版

      微软企业库(Microsoft Enterprise Library)是微软公司发布的一套用于.NET Framework的应用程序开发框架,它提供了许多可重用的软件组件,旨在简化常见的应用程序开发任务,尤其是与企业级应用程序相关的复杂性,如...

      proe5.0学习笔记

      ProE 5.0学习笔记总结 ProE 5.0是一个功能强大且复杂的三维CAD设计软件,对于刚接触ProE的用户来说,学习和掌握它需要投入很多时间和精力。以下是ProE 5.0学习笔记的总结,包括安装方法、基本操作和advanced操作等...

      Java JDK 5.0学习笔记

      本学习笔记旨在帮助新手全面理解并掌握Java 5.0的关键知识点。 一、泛型(Generics) Java 5.0引入了泛型,它允许在定义类、接口和方法时指定类型参数,从而实现类型安全的集合。泛型消除了强制类型转换的需要,...

      良葛格————JavaJDK5.0学习笔记PDF

      良葛格————JavaJDK5.0学良葛格————JavaJDK5.0学习笔记PDF.rar习笔记PDF.rar良葛格良葛格————JavaJDK5.0学习笔记PDF.rar————JavaJDK5.0学习笔记PDF.rar良葛格————JavaJDK5.0学习笔记PDF.rar良...

      良葛格Java JDK 5.0学习笔记

      Java JDK 5.0是Java发展历程中的一个重要里程碑,它引入了许多新特性,极大地提升了开发效率和代码质量。..."良葛格Java JDK 5.0学习笔记"这份资料应该会详细解释这些概念,为初学者提供宝贵的参考资料。

      Java JDK 5.0学习笔记:TP312JA L393.iso

      Java JDK 5.0学习笔记:TP312JA L393.iso 随书光盘,欢迎大家下载 大家共享^A^

      良葛格Java JDK 5.0学习笔记ch05

      在这个"良葛格Java JDK 5.0学习笔记ch05"中,我们将深入探讨其中的关键知识点。 一、泛型 Java 5.0引入了泛型,这是一项强大的类型安全机制,允许在编译时检查类型。泛型可以应用于类、接口和方法,通过指定参数...

      [EntLib]微软企业库5.0 学习之路——第三步、为项目加上异常处理(采用自定义扩展方式记录到数据库中).doc

      微软企业库5.0是微软推出的一套用于简化软件开发中常见任务的工具集,尤其在异常处理和日志记录方面提供了强大的支持。本篇文档将聚焦于如何使用微软企业库5.0来为项目添加异常处理机制,并通过自定义扩展的方式将其...

      良葛格Java JDK 5.0学习笔记[可打印]

      良葛格的Java JDK 5.0学习笔记是一份宝贵的资源,适合初学者和有经验的开发者回顾这个版本的关键概念。下面我们将详细探讨Java JDK 5.0中的核心知识点。 1. **泛型(Generics)** 泛型是JDK 5.0引入的一项重要特性...

      微软企业库 5.0 (C#) Enterprise Library 5.0 学习资料

      ☆ 资料如下:☆ ☆ 源代码 ☆ Enterprise Library 5.0.msi Enterprise Library 5.0 - Source Code....[Microsoft Press] Microsoft Enterprise Library 5.0 [Packt Publishing] Microsoft Enterprise Library 5.0

    Global site tag (gtag.js) - Google Analytics