В приступе раздражения от элементов управления проверкой Asp.Net (разрозненных, подробных, неудобных) я решил посмотреть, смогу ли я создать серию элементов управления вводом, каждый из которых несет свои собственные методы и свойства проверки.
Один из моих критериев проектирования - разрешить моим свойствам проверки отображаться в VS intellisense как атрибуты тега вместе с остальными свойствами элемента управления.
Моей первой мыслью было создать базовый класс, который наследуется от WebControl и реализует новые свойства и методы, но без множественного наследования, что означало бы невозможность наследования, скажем, TextBox.
Это, кажется, означает либо
наследование от каждого элемента управления WebControl (TextBox, DropDown и т. д.) и (повторное) кодирование общих свойств и методов валидации для каждого из моих классов управления (с интерфейсом или без него, который кажется расточительным), или
кодирование базового класса (скажем, ValidatedInputControl) один раз и поиск способа реализации отдельных WebControls (текстового поля и т. д.) в классах, которые наследуются от ValidatedInputControl. Я подозреваю, что это означает рендеринг и т. Д., Или,
найти какой-то другой паттерн / дизайн, который будет работать более эффективно
Итак, ищу предложения ...