Вы должны использовать класс 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);