Как страницы ASPX превращаются в System.Web.UI.Page? - PullRequest
3 голосов
/ 04 февраля 2010

ASP.NET (.aspx) страницы имеют объявление <%@ Page %> вверху, которое включает атрибут Inherits="". Страницы ASPX наследуются от System.Web.UI.Page декларативного.

У меня вопрос: какой код на самом деле преобразует страницу aspx в объект типа System.Web.UI.Page класса? Где в жизненном цикле это происходит и какой класс отвечает за это?

1 Ответ

1 голос
/ 05 февраля 2010

На самом деле это не происходит в течение жизненного цикла страницы. К тому времени, когда ваш объект Page вызывается как обработчик запроса, .aspx уже проанализирован, и код скомпилирован в базовые классы.

Когда этот анализ и компиляция происходят, зависит от настройки вашего приложения. Если это «проект веб-сайта», эта компиляция обычно происходит на лету в среде выполнения ASP.Net, то есть при обнаружении запроса к странице, которая не была запрошена ранее или была изменена.

На предварительно скомпилированных веб-сайтах все классы уже существуют, и не выполняется анализ и компиляция во время выполнения.

Класс, который фактически выполняет преобразование, - это класс с именем PageParser . По сути, среда выполнения ASP.Net вызывает метод GetCompiledPageInstance этого класса, который завершает компиляцию страницы, если она уже не существует в памяти.

С точки зрения жизненного цикла - жизненный цикл страницы вложен в жизненный цикл HttpApplication , который, в свою очередь, является частью конвейера обработки http-запросов. Это задолго до того, как Пейдж появится в картине, эта компиляция произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...