Вы можете использовать FluentValidation. Нажмите здесь
использование:
public class MyValidator: AbstractValidator<Customer> {
public CustomerValidator() {
RuleFor(x => x.Surname).NotEmpty();
RuleFor(x => x.Forename).NotEmpty().WithMessage("Please specify a first name");
RuleFor(x => x.Discount).NotEqual(0).When(x => x.HasDiscount);
RuleFor(x => x.Address).Length(20, 250);
RuleFor(x => x.Postcode).Must(BeAValidPostcode).WithMessage("Please specify a valid postcode");
}
private bool BeAValidPostcode(string postcode) {
// custom postcode validating logic goes here
}
}
В вашем случае вы можете просто заменить AbstractValidator<Customer>
базовым типом, который является производным AbstractValidator<Customer>
от этого, вы может делать то, что вам когда-либо нужно для проверки на вашем базовом DTO. хотя я думаю, что есть некоторые apis на ваше приложение не принимает никаких параметров.
для меня, это самый эффективный и чистый способ.
Надеюсь, что помогло ...