我們知道,在使用ASP.NET MVC時可以對實體參數進行驗證,我們只需要在屬性上標記[Required]就表示該屬性是必填項,同時MVC框架會自動進行驗證,使用起來不亦樂乎。但是如果我們在控制台應用程序或是非控制器中想要觸發這個驗證怎么樣才能實現呢?
環境:.net core 3.1 控制台應用程序
1.創建實體類Student
public class Student { [Required] public string Name { get; set; } [Range(1, 100)] public int Age { get; set; } [Required] [RegularExpression(@"\d{11}", ErrorMessage = "電話號碼格式不對")] public string Phone { get; set; } }
2.定義驗證方法
var student = new Student() { Name = "段江濤", Age = 1, Phone = "1365" }; var context = new ValidationContext(student, null, null); var results = new List<ValidationResult>(); if (Validator.TryValidateObject(student, context, results, true)) { Console.WriteLine("驗證成功"); } else { Console.WriteLine("驗證失敗"); foreach (var validationResult in results) { Console.WriteLine(validationResult.ErrorMessage); } } Console.ReadLine();
效果:
更高級的用法可參考:https://blog.csdn.net/litao2/article/details/78568364