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

2023年 8月 30日 24.2k 0

如果出生日期超过当前年份,如何使用 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 - 120)){
return true;
}

return false;
}
}

登录后复制

输出

Invalid Date Of Birth

登录后复制

以上就是如果出生日期超过当前年份,如何使用 C# 中的流畅验证来验证出生日期?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论