我想使用库程序集中的数据验证属性,以便数据的任何使用者可以在不使用ModelBinder(例如在控制台应用程序中)的情况下对其进行验证。我该怎么做?
解决方法
其实这很酷我最近在世界粮食计划署的验证实施中使用了它。大多数人最终使用反射编写大量代码来迭代属性,但是内置的功能就是这样。
var vc = new ValidationContext(myObject,null,null); return Validator.TryValidateObject(myObject,vc,true);
您还可以验证单个命名属性上的属性。您还可以选择传入列表以访问错误消息:
var results = new List<ValidationResult>(); var vc = new ValidationContext(myObject,null) { MemberName = "UserName"}; var isValid = Validator.TryValidateProperty(value,results); // get all the errors var errors = Array.ConvertAll(results.ToArray(),o => o.ErrorMessage);