2010-04-29 70 views

回答

6
從我,但我的朋友史蒂夫·桑德森

不:

internal static class DataAnnotationsValidationRunner 
{ 
    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); 
    } 
} 

您可能需要,如果你想[數據類型(DataType.EmailAddress)實際驗證的電子郵件地址,以提高這一點,例如,或者如果你想以支持[MetadataType]屬性。

13

現在這是建設成C#4

var result = new List<ValidationResult>(); 
bool valid = Validator.TryValidateObject(Vehicle, new ValidationContext(Vehicle, null, null), result); 

這也會給你驗證的細節。

相關問題