如果出生日期超过当前年份,如何使用 C# 中的流畅验证来验证出生日期?

如果出生日期超过当前年份,如何使用 C# 中的流畅验证来验证出生日期?

要为特定属性指定验证规则,请调用RuleFor方法,传递一个表示要验证的属性的lambda表达式

RuleFor(p => p.DateOfBirth)

要运行验证器,请实例化验证器对象并调用Validate方法,将要验证的对象传递给它。

ValidationResult results = validator.Validate(person);

Validate方法返回一个ValidationResult对象。它包含两个属性

IsValid - 一个布尔值,表示验证是否成功。

Errors - 包含有关任何验证失败的详细信息的ValidationFailure对象集合

示例1

static void Main(string[] args) {
   List errors = new List();

   PersonModel person = new PersonModel();
   person.FirstName = "TestUser";
   person.LastName = "TestUser";
   person.AccountBalance = 100;
   person.DateOfBirth = DateTime.Now.Date.AddYears(1);

   PersonValidator validator = new PersonValidator();

   ValidationResult results = validator.Validate(person);

   if (results.IsValid == false) {
      foreach (ValidationFailure failure in results.Errors){
         errors.Add(failure.ErrorMessage);
      }
   }

   foreach (var item in errors){
      Console.WriteLine(item);
   }
   Console.ReadLine();

   }
}

public class PersonModel {
   public string FirstName { get; set; }
   public string LastName { get; set; }
   public decimal AccountBalance { get; set; }
   public DateTime DateOfBirth { get; set; }
}

public class PersonValidator : AbstractValidator{
   public PersonValidator(){
      RuleFor(p => p.DateOfBirth)
      .Must(BeAValidAge).WithMessage("Invalid {PropertyName}");
   }

   protected bool BeAValidAge(DateTime date){
      int currentYear = DateTime.Now.Year;
      int dobYear = date.Year;

      if (dobYear <= currentYear && dobYear > (currentYear - 120)){
         return true;
      }

      return false;
   }
}

输出

Invalid Date Of Birth

以上就是如果出生日期超过当前年份,如何使用 C# 中的流畅验证来验证出生日期?的详细内容,更多请关注编程之家其它相关文章!

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...