Основной причиной будет простота и следование принципу DRY. Допустим, у вас есть 10 контроллеров, которые выполняют бизнес-логику c с использованием List<string> stringCollection
, теперь вам нужно вручную писать if()
, делать это снова и снова на всех 10 контроллерах.
С атрибутом, который вы просто пишете if()
только один раз в том месте, где выполняется проверка, и просто добавьте атрибут.
Лучшей альтернативой написанию собственных условий проверки является использование библиотеки, подобной FluentValidation
-> Docs
Если вы хотите увидеть еще несколько удивительных библиотек, подобных этой, посмотрите этот список