• FluentValidation .NET 验证组件


    FluentValidation是一个使用Linq表达式,非常流畅的小型业务对象验证组件。流畅也可以说优雅。类似链式操作。易于理解,功能完善。

    还可以配合MVC使用直接在页面进行验证,当你看到它的语法时,非常优雅,非常令人心动。

    而且它对ASP.NETCore支持十分友好,可以很方便的进行集成使用。

    看如下官网提供的一段验证代码:

    using FluentValidation;
    public class CustomerValidator: AbstractValidator<Customer> {
      public CustomerValidator() {
        RuleFor(x => x.Surname).NotEmpty();
        RuleFor(x => x.Forename).NotEmpty().WithMessage("Please specify a first name");
        RuleFor(x => x.Discount).NotEqual(0).When(x => x.HasDiscount);
        RuleFor(x => x.Address).Length(20, 250);
        RuleFor(x => x.Postcode).Must(BeAValidPostcode).WithMessage("Please specify a valid postcode");
      }
      private bool BeAValidPostcode(string postcode) {
        //custom postcode validating logic goes here
      }
    }
    Customer customer = new Customer();
    CustomerValidator validator = new CustomerValidator();
    ValidationResult results = validator.Validate(customer);
     
    bool validationSucceeded = results.IsValid;
    IList<ValidationFailure> failures = results.Errors;
    View Code

    要点:

    1. 必须继承于AbstractValidator
    2. AbstractValidator<需要验证的类>
    3. 在构造函数中添加验证
    4. RuleFor是对某一个属性添加验证规则

    不仅可以使用Linq的操作,还能自带验证返回信息。更重要的是,组件内部已经封装好了10几种验证器。当然可以自定义一个复杂的。

    NuGet Packages:Install-Package FluentValidation

    ASP.NET MVC集成包:Install-Package FluentValidation.MVC5 

    相关包:

    核心:FluentValidation

    .net:FluentValidation.Mvc5/FluentValidation.WebApi

    .net core:FluentValidation.AspNetCore

  • 相关阅读:
    3.8.3 循环
    3.8.2 条件语句
    LDA-Latent Dirichlet Allocation 学习笔记
    概率主题模型简介 Introduction to Probabilistic Topic Models
    Visual Categorization with Bags of Keypoints
    Chrome神器Vimium快捷键学习记录
    需要学习的科目
    PGM学习之六 从有向无环图(DAG)到贝叶斯网络(Bayesian Networks)
    PGM学习之五 贝叶斯网络
    PGM学习之四 Factor,Reasoning
  • 原文地址:https://www.cnblogs.com/li150dan/p/14987393.html
Copyright © 2020-2023  润新知