首页 > 其他分享 >FluentValidation

FluentValidation

时间:2024-04-22 20:48:54浏览次数:17  
标签:RuleFor string FluentValidation user public WithMessage

FluentValidation — FluentValidation documentation

 

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
  }
}

  

 

using MediatR;
using System.Runtime.Serialization;

namespace WebApplication1.Handles
{
    /// <summary>
    /// 添加User实体 命令
    /// </summary>

    public class AddUserCommand : IRequest<bool>
    {
        public AddUserCommand(string userName, int age , string email)
        {
            UserName = userName;
            Age = age;
            Email = email;
        }
      
        public string Email { get; set; }
 
        public string UserName { get; set; }
   
        public int Age { get; set; }
    }
}

  

 

using FluentValidation;
using WebApplication1.Handles;

namespace WebApplication1.Validations
{
    public class AddUserCommandValidator : AbstractValidator<AddUserCommand>
    {
        public AddUserCommandValidator()
        {
            RuleFor(user => user.Age).NotEmpty().WithMessage("年龄不能为空").Must(ValidationAge).WithMessage("年龄必须大于0");
            RuleFor(user => user.Email).NotEmpty().WithMessage("邮箱不能为空").EmailAddress(FluentValidation.Validators.EmailValidationMode.Net4xRegex);
            RuleFor(user => user.UserName).NotEmpty().WithMessage("用户名不能为空");
        }
        /// <summary>
        /// 验证年龄 大于0
        /// </summary>
        /// <param name="age"></param>
        /// <returns></returns>
        private bool ValidationAge(int age)
        {
            return age > 0 ? true : false;
        }
    }
}

  

 

//模型验证注入
builder.Services.AddScoped<IValidator<AddUserCommand>, AddUserCommandValidator>();

  

标签:RuleFor,string,FluentValidation,user,public,WithMessage
From: https://www.cnblogs.com/yyxone/p/18151473

相关文章

  • FluentValidation在C# WPF中的应用
    1.引言在.NET开发领域,FluentValidation以其优雅、易扩展的特性成为开发者进行属性验证的首选工具。它不仅适用于Web开发,如MVC、WebAPI和ASP.NETCORE,同样也能完美集成在WPF应用程序中,提供强大的数据验证功能。本文将深入探讨如何在C#WPF项目中运用FluentValidation进行属性验证,......
  • FluentValidation在C#的应用
    FluentValidation在C#WPF中的应用  1.引言在.NET开发领域,FluentValidation以其优雅、易扩展的特性成为开发者进行属性验证的首选工具。它不仅适用于Web开发,如MVC、WebAPI和ASP.NETCORE,同样也能完美集成在WPF应用程序中,提供强大的数据验证功能。本文将深入探讨如何在C#......
  • FluentValidation在C# WPF中的应用
    1.引言在.NET开发领域,FluentValidation以其优雅、易扩展的特性成为开发者进行属性验证的首选工具。它不仅适用于Web开发,如MVC、WebAPI和ASP.NETCORE,同样也能完美集成在WPF应用程序中,提供强大的数据验证功能。本文将深入探讨如何在C#WPF项目中运用FluentValidation进行属性验......
  • Asp .Net Core 集成 FluentValidation 强类型验证规则库
    目录入门程序安装案例:登录验证器内置验证器自定义验证器编写自定义验证器可重复使用的属性验证器本地化DI自动验证官网:https://docs.fluentvalidation.net/en/latest/index.html入门程序安装使用VisualStudio中的NuGet包管理器控制台运行以下命令:Install-PackageFluent......
  • 使用MediatR和FluentValidation实现CQRS应用程序的数据验证
    本文将重点介绍如何通过MediatR的管道功能将FluentValidation集成到项目中实现验证功能。什么是CQRS?CQRS(CommandQueryResponsibilitySegregation)也叫命令查询职责分离,是近年来非常流行的应用程序架构模式。CQRS背后的理念是在逻辑上将应用程序的流程分成两个独立的流程,即命......
  • WPF使用FluentValidation进行表单验证
    WPF使用FluentValidation进行表单验证.net版本:6.0使用的NuGet包FluentValidation:11.6.0MaterialDesignThemes:4.9.0Prism.DryIoc:8.1.97在WPF里验证表单使用的是INotifyDataErrorInfo接口,这个接口长这样publicinterfaceINotifyDataErrorInfo{boolHasErrors{get;......
  • net 6使用FluentValidation校验请求数据
    1,nuget增加FluentValidation.AspNetCore2.DI中添加builder.Services.AddFluentValidation(opt=>{opt.RegisterValidatorsFromAssembly(Assembly.GetEntryAssembly());});3.添加具体的校验类usingFluentValidation;namespaceEShopWebApi.Controllers;public......
  • 基于 .NET的FluentValidation验证教程
    虽然FluentValidation是一个非常强大的验证框架,但针对该框架的中文资料并不完善,零度在学习的过程中,将官方文档进行了翻译,由此产生本文,可供参阅。要使用验证框架,需要在项目中添加对FluentValidation.dll的引用,支持netstandard2.0库和.NET4.5平台,支持.NETCore平台,最简......
  • Validating multiple properties with FluentValidation(FluentValidator多个相关属性
    Sourcelink:ValidatingmultiplepropertieswithFluentValidation|TheCodetripper(wordpress.com)publicclassFooBarRequestValidator:AbstractValidator<FooBarRequest>{privatereadonlyIRepositoryrepository;publicFooBarRequestValid......
  • .NET Core中的验证组件FluentValidation的实战分享
    今天有人问我能不能出一篇FluentValidation的教程,刚好今天在实现我们的.NETCore实战项目之CMS的修改密码部分的功能中有用到FluentValidation,所以就以修改用户密码为实例......