您必须使用Validator 类,它可以作为DataAnnotations 的一部分找到。
User userEntity = new User();
var validationContext = new ValidationContext(userEntity, null, null);
var validationResults = new List<ValidationResult>();
DataAnnotations.Validator.TryValidateObject(userEntity, validationContext, validationResults, true);
如果您的所有实体或应用程序/域模型类都继承自同一个类,您可以将此代码放在父类中或作为扩展方法来保持您的类干净。
否则你将使用单例模式来创建一个特殊的静态验证器。您可以根据自己的喜好使用验证结果。
元数据类
如果您使用元数据类为实体定义验证规则,则应在验证之前注册元数据类:
TypeDescriptor.AddProviderTransparent(
new AssociatedMetadataTypeTypeDescriptionProvider(
typeof(User),
typeof(UserMetadata)
),
typeof(User)
);
Validator.TryValidateObject(userEntity, context, results, true);