Я хочу иметь возможность декларативно указывать веб-элементы управления любой заданной страницы стандартным способом, , но имеют во время выполнения не обязательно новые экземпляры указанных типов, а скорее, например, проверку по сети.config, следует ли использовать вместо этого другой веб-элемент управления (который наследуется от указанного).
например, я мог бы иметь веб-контроль по пути /templates/controls/default/PersonSelector.ascx и другой впуть /templates/controls/CUSTOMER_A/PersonSelector.ascx (унаследованный от первого)
, поэтому, если моя конфигурация указывает, что я предпочитаю загружать элементы управления из папки CUSTOMER_A, где она доступна, и так как она будет доступна в этомВ этом случае фактическая разметка, которая использовалась для страницы, будет получена из ... / CUSTOMER_A / PersonSelector.ascx.Весь код, который во время компиляции предполагал, что он на самом деле является экземпляром ../default/PersonSelector.ascx, все равно будет работать, так как он на самом деле является подклассом.
Это было бы на самом деле основным преимуществом для нашего сайта, которыйэто мультитенантный сайт, в котором 99,5% сгенерированного html одинаково для всех наших клиентов (за исключением скиннинга, естественно), но некоторым клиентов нужны разные заголовки / нижние колонтитулы / логика выбора и т. д. Пока что всеРазличия обрабатываются путем вздутия элементов управления и, если / иначе, повсюду.
Я понимаю, что asp.net, вероятно, не является предпочтительным оружием для подобных вещей, но это то, что у нас есть, и кодовая база достаточно велика, чтобы переписать было бы больно.