如何在非ASP.net上下文中使用C#中的数据验证属性?

前端之家收集整理的这篇文章主要介绍了如何在非ASP.net上下文中使用C#中的数据验证属性?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用库程序集中的数据验证属性,以便数据的任何使用者可以在不使用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);

猜你在找的asp.Net相关文章