使用DataAnnotations验证类

时间:2009-12-04 15:31:49

标签: c# .net data-annotations

我有一个类用于在MVC中建模我的数据。我添加了一些DataAnotations来标记所需的字段,我使用正则表达式来检查有效的电子邮件地址。如果对象被回发到MVC并且我有可以检查以确认该类是有效的ModelState属性,但是如何使用相同的类和数据Anot来检查该类是否在MVC之外是有效的,一切正常我已经设置好了吗?

2 个答案:

答案 0 :(得分:2)

这是我过去使用Data Annotations来获取带注释对象的所有错误的方法(它可以使用一些改进,但它是一个很好的起点:

public static IEnumerable<ErrorInfo> GetErrors(object instance)    
{
   return from prop in TypeDescriptor.GetProperties(instance).Cast<PropertyDescriptor>() 
      from attribute in prop.Attributes.OfType<ValidationAttribute>()
      where !attribute.IsValid(prop.GetValue(instance))
      select new ErrorInfo(prop.Name, attribute.FormatErrorMessage(String.Empty), instance);    
}

答案 1 :(得分:0)

.NET 3.5中似乎没有任何内置功能。但是,如果您可以针对.NET 4进行开发,那么可以使用Validator类来提供所需的内容:

Validator class on MSDN