在使用IValidatableObject的过程中,我看到的大多数示例都使用Validator来验证这样的对象:
IEnumerable<ValidationResult> ValidateMyModel(IValidatableObject model){
var validationResults = new List<ValidationResult>();
Validator.TryValidateObject(model, new ValidationContext(model), validationResults);
return validationResults;
}但是,我也看到了像这样使用的IValidatableObject.Validate()方法:
IEnumerable<ValidationResult> ValidateMyModel(IValidatableObject model){
return model.Validate(new ValidationContext(model));
}在选择使用哪种方法验证对象之前,这两种方法之间是否有任何功能上的区别或应该考虑的事项?
发布于 2015-01-14 20:28:52
Validator.TryValidateObject将检查属性的RequiredAttribute、附加到IValidatableObject类型的任何ValidationAttribute和IValidatableObject的Validate方法。
model.Validate不会检查任何属性。
https://stackoverflow.com/questions/27947634
复制相似问题