当前位置:  开发笔记 > 编程语言 > 正文

如何在Winforms中使用数据注释验证器?

如何解决《如何在Winforms中使用数据注释验证器?》经验,为你挑选了1个好方法。

我喜欢企业库中的验证应用程序块:-)
现在我想在Winforms中使用DataAnnotations,因为我们也使用asp.net动态数据.因此,我们在整个公司拥有共同的技术.
此外,数据注释应该更容易使用.

我怎样才能在像Stephen Walter在asp.net MVC中那样在Winforms中做类似的事情?



1> Matt Murrell..:

我改编了一个在http://blog.codeville.net/category/validation/page/2/找到的解决方案

public class DataValidator
    {
    public class ErrorInfo
    {
        public ErrorInfo(string property, string message)
        {
            this.Property = property;
            this.Message = message;
        }

        public string Message;
        public string Property;
    }

    public static IEnumerable Validate(object instance)
    {
        return from prop in instance.GetType().GetProperties()
               from attribute in prop.GetCustomAttributes(typeof(ValidationAttribute), true).OfType()
               where !attribute.IsValid(prop.GetValue(instance, null))
               select new ErrorInfo(prop.Name, attribute.FormatErrorMessage(string.Empty));
    }
}

这将允许您使用以下代码使用以下语法验证任何对象:

var errors = DataValidator.Validate(obj);

if (errors.Any()) throw new ValidationException();

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有