管理

  

  Microsoft.Practices.EnterpriseLibrary.Validation 是微软企业库的一部分,它提供了一个功能强大的验证应用程序模块,旨在帮助开发者实现结构化且易于维护的验证逻辑。以下是对 Microsoft.Practices.EnterpriseLibrary.Validation 框架的介绍:

  框架概述

  微软企业库是一系列可重用的应用程序块的集合,专门设计来帮助软件开发人员解决常见的企业级开发挑战。其中,验证块(Validation Application Block)提供了丰富的验证规则和工具,支持通过代码或配置文件来定义验证规则。

  特点

  • 一致性:有助于保持一致的验证方法。
  • 标准验证:包括大多数标准的 .NET 数据类型验证。
  • 规则集:允许为类及其成员定义多个规则集。
  • 灵活性:可以应用一个或多个规则集进行对象验证

  使用模式

  企业库验证应用程序模块有两种使用模式:

  1. 代码模式:直接在代码中定义验证规则。
  2. 配置文件模式:在配置文件中定义验证规则,适用于更灵活的验证需求。

  验证方法

  提供了多种验证方法,包括但不限于:

  • And CompositeValidator
  • ContainsCharacters Validator
  • Date Time RangeValidator
  • Enum ConversionValidator
  • Not Null Validator
  • Range Validator
  • Regular ExpressionValidator
  • String LengthValidator

  使用示例

  在代码中使用验证块的一个示例如下:

public class MyClass

{

    [StringLengthValidator(1, 32, MessageTemplate = "MyValue is too long", Ruleset = "MyRules")]

    [MyValidator(MessageTemplate = "MyValue is invalid", Ruleset = "MyRules")]

    public string MyValue { get; set; }

 

    public ValidationResults Validate()

    {

        Validator<MyClass> myValidator = ValidationFactory.CreateValidator<MyClass>("MyRules");

        ValidationResults custResults = myValidator.Validate(this);

        return custResults;

    }

}

  验证器创建

  可以使用 ValidationFactory 类来创建验证器对象,如 CreateValidator<T> 方法,它根据指定的规则集为类型 T 创建验证器。

  NuGet 包

  可以通过 NuGet 包管理器安装企业库验证应用程序块,例如使用以下命令:

  Install-Package EnterpriseLibrary.Validation

  此包支持 .NET Framework 的多个版本,并且与其他企业库组件兼容,如 EnterpriseLibrary.Validation.Integration.WCF 和 EnterpriseLibrary.Validation.Integration.AspNet。

 

  以下是如何使用这个框架的一些基本步骤和介绍:

  1. 安装企业库验证组件

  首先,您需要通过 NuGet 包管理器安装 Microsoft.Practices.EnterpriseLibrary.Validation。在 Visual Studio 中,可以使用以下命令:

  Install-Package EnterpriseLibrary.Validation

  2. 添加引用

  安装完成后,在您的项目中添加对 Microsoft.Practices.EnterpriseLibrary.Validation 的引用。

using Microsoft.Practices.EnterpriseLibrary.Validation;

using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

  3. 定义验证规则

  您可以为模型的属性定义验证规则。这可以通过使用数据注解或自定义属性来完成。

public class Person

{

    [NotNullValidator]

    [StringLengthValidator(1, 100, MessageTemplate = "Name must be 1 to 100 characters long.")]

    public string Name { get; set; }

 

    [RangeValidator(1, 99, MessageTemplate = "Age must be between 1 and 99.")]

    public int Age { get; set; }

}

  4. 创建验证器

  使用 ValidationFactory 来创建一个验证器实例,它可以对特定类型的对象进行验证。

var validator = ValidationFactory.CreateValidator<Person>();

  5. 执行验证

  使用创建的验证器对对象进行验证,并获取验证结果。

var person = new Person { Name = "John Doe", Age = 30 };

var results = validator.Validate(person);

  6. 处理验证结果

  检查验证结果,并根据需要处理验证错误。

if (!results.IsValid)

{

    foreach (var validationResult in results)

    {

        Console.WriteLine(validationResult.Message);

    }

}

else

{

    Console.WriteLine("Validation succeeded.");

}

  7. 定义自定义验证器

  如果内置验证器不满足需求,您可以创建自定义验证器。

public class MyCustomValidator : Validator<string>

{

    public MyCustomValidator()

        : base("Custom validation failed", "MyCustomValidator")

    {

    }

 

    protected override void DoValidate(string objectToValidate, object currentTarget, string key, ValidationResults validationResults)

    {

        // 自定义验证逻辑

        if (/* some condition */)

        {

            validationResults.AddResult(new ValidationResult("Custom validation message", key, objectToValidate, currentTarget));

        }

    }

}

  8. 注册和使用自定义验证器

  在定义了自定义验证器后,您需要注册它,然后像使用内置验证器一样使用它。

ValidatorFactory.SetDefaultFactory(new ValidatorFactory());

ValidatorFactory.RegisterValidator(typeof(string), new MyCustomValidator());

  9. 配置验证规则(可选)

  除了在代码中定义验证规则外,还可以通过配置文件来配置验证规则,这提供了更大的灵活性和可维护性。

 

  网址:https://learn.microsoft.com/zh-hk/previous-versions/msp-n-p/ee743849(v=pandp.51)

Copyright © 2000-2022 Lzhdim Technology Software All Rights Reserved