天天看點

黃聰:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初級)

企業庫提供了一個很強大的驗證應用程式子產品,特點是:

可以通過配置為你的程式中特定的類來定義規則集.

是為你的類的公有屬性,即對外開放的屬性進行驗證的.

使用企業庫驗證應用程式子產品的優勢:

有助于保持一緻的驗證方法。

包括大多數标準驗證,包括.NET資料類型校驗.

它讓您可以将多個規則集具有相同的類和該類的成員.

它可以讓你申請一個或多個規則集時,您驗證的對象.

企業庫驗證應用程式子產品提供了下列幾種驗證方法:

And CompositeValidator

ContainsCharacters Validator

Date Time RangeValidator

Domain Validator

Enum ConversionValidator

Not Null Validator

Object CollectionValidator

Object Validator

Or CompositeValidator

PropertyComparison Validator

Range Validator

Regular ExpressionValidator

Relative Date TimeValidator

String LengthValidator

Type ConversionValidator

Single MemberValidators

企業庫驗證應用程式子產品有2種使用模式:

代碼模式.

配置檔案模式.

本文講的是代碼模式,配置檔案模式在進階篇再介紹

下面介紹如何使用Microsoft Enterprise Library 5.0中的驗證應用程式子產品的代碼模式.

要使用緩存應用程式子產品, 需要導入相應的Dll檔案,在此我們要導入的是Microsoft.Practices.EnterpriseLibrary. Validation.dll ,System.ComponentModel.DataAnnotations.dll ,并添加需要的引用:

黃聰:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初級)

添加引用:

usingMicrosoft.Practices.EnterpriseLibrary.Validation.Validators;

usingMicrosoft.Practices.EnterpriseLibrary.Validation;

usingSystem.Collections.Generic;

  2. 測試:

黃聰:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初級)
黃聰:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初級)

代碼

using System;

using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

using Microsoft.Practices.EnterpriseLibrary.Validation;

using System.Collections.Generic;

namespace test

{

class Program

staticint index =1;

staticvoid Main(string[] args)

//驗證Customer類

Validator<Customer> customerValidator = ValidationFactory.CreateValidator<Customer>();

//設定Customer的CustomerName字段為null

Customer myCustomer =new Customer(null);

ValidationResults vr = customerValidator.Validate(myCustomer);

Scan(vr);

//設定Customer的CustomerName

myCustomer.CustomerName ="HuangCong";

vr = customerValidator.Validate(myCustomer);

//建立一個日期

DateTime dt =new DateTime(1988, 01, 01);

//建立一個日期驗證器

Validator<DateTime> v1 =new DateTimeRangeValidator(DateTime.Parse("2009-01-01"), DateTime.Parse("2010-01-01"));

vr = v1.Validate(dt);

dt =new DateTime(2009, 5, 5);

/*

其他的驗證類還有如下這些,大家可以自己實驗:

And Composite Validator

Contains Characters Validator

Date Time Range Validator

Enum Conversion Validator

Object Collection Validator

Or Composite Validator

Property Comparison Validator

Regular Expression Validator

Relative Date Time Validator

String Length Validator

Type Conversion Validator

Single Member Validators

參考網站:http://msdn.microsoft.com/en-us/library/ff664694%28v=PandP.50%29.aspx

*/

}

publicclass Customer

//Not Null Validator 驗證器,驗證該屬性不能為空值

[NotNullValidator]

publicstring CustomerName;

public Customer(string customerName)

this.CustomerName = customerName;

privatestaticvoid Scan(ValidationResults vr)

Console.WriteLine("測試{0}:", index++);

if (!vr.IsValid)

Console.WriteLine("出錯");

else

Console.WriteLine("正确");

Console.WriteLine("---------------------------------------");

  3. 運作結果:

黃聰:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初級)

繼續閱讀