Я бы сказал, что вам следует пересмотреть свой подход к валидации. Предлагаемый вами подход означает, что при каждом изменении свойства будет генерироваться сообщение.
Как эти сообщения будут собираться, храниться и представляться? Особенно, если вы решили использовать свои занятия на веб-сайте?
Что если вы хотите подтвердить свой класс в любое другое время?
Что если вы хотите использовать те же правила при проверке на стороне клиента?
Я могу понять привлекательность получения неверного значения как можно раньше, но намного проще проверить весь класс за один вызов, такой как метод Validate (). Таким образом, вы получаете полный контроль над выполнением логики проверки.
Я бы рекомендовал вам ознакомиться с двумя основными подходами к валидации свойств:
Аннотации данных
Проверка текучести для> NET 3.0 и выше
Свободная проверка для .NET 2.0
Как аннотации данных, так и FluentValidation просты в использовании, и они могут генерировать хорошо проверенные клиентские проверки на веб-формах и выигрышных формах.
В аннотациях данных проверка добавляется в свойства с использованием атрибутов. Если вы предпочитаете, чтобы ваши классы данных были чистыми объектами передачи данных, проверка Fluent предполагает создание легко читаемых правил в классах Validator.