微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在非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);

原文地址:https://www.jb51.cc/aspnet/253732.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐