Следующий метод - это то, что я использовал в своем проекте для внесения конкретных изменений в конфигурацию для разных клиентов.
Проект ASP.Net разработан на модульной общей основе, которую получают все клиенты.
После заполнения Page
соответствующими элементами управления и непосредственно перед тем, как мы начнем рендеринг, я передаю объект Page
в модуль, который выполняет все специфические для клиента изменения конфигурации.
Таким образом, в базовом вызовемоя страница, у меня есть что-то вроде этого:
protected void Page_Load(object sender, EventArgs e)
{
PreRender += ConfigurationInterceptors;
}
Метод ConfigurationInterceptors
будет передавать объект текущей страницы в модуль, который будет читать специфическую для клиента конфигурацию, проходить по элементам управления, которые необходимо изменить,и изменяется во время выполнения и перед тем, как перейти на сервер к веб-странице клиента.
protected void ConfigurationInterceptors(object sender, EventArgs e)
{
Interceptor interceptor = new Interceptor(this.Page);
}
Класс Interceptor
представляет собой автономный уровень, который запускает серию вызовов FindControl
и изменяется по мере необходимости.
Таким образом, этот шаблон позволил нам поместить индивидуальные настройки клиента в отдельный бункер и не усложнять базуобщая кодовая база.