Что не так с большим количеством полей - больше проверки? Если у вас есть 20 различных полей для проверки, и каждое из них требует различного типа проверки, вам придется реализовать столько методов.
Конечно, есть несколько распространенных способов помочь вам здесь. Вам, вероятно, не нужны методы UserCannotBeEmpty
и PasswordCannotBeEmpty
. Скорее всего, вы будете в порядке с CannotBeEmpty(string errorMessage)
. Рефакторинг вещей, которые являются общими (проверки на нуль, буквенно-цифровые проверки, разбор даты / времени и т. Д. - в зависимости от типа), и выполнение проверки на уровне поля только при необходимости.
Имейте в виду, что валидация для конкретного домена (ваши бизнес-правила, например, «дата отгрузки не может быть раньше даты производства») должна быть подтверждена на стороне модели.