加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 18:43:36 所属栏目:asp.Net 来源:网络整理
导读:我想使用库程序集中的数据验证属性,以便数据的任何使用者可以在不使用ModelBinder(例如在控制台应用程序中)的情况下对其进行验证。我该怎么做? 解决方法 其实这很酷我最近在世界粮食计划署的验证实施中使用了它。大多数人最终使用反射编写大量代码来迭代属
我想使用库程序集中的数据验证属性,以便数据的任何使用者可以在不使用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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读