Есть ли новый экземпляр контроллера для каждого запроса? - PullRequest
10 голосов
/ 17 марта 2010

Мне просто интересно, есть ли новый экземпляр контроллера для каждого запроса? Как это на самом деле работает? Я прочитал что-то подобное после того, как маршрутизация входящего запроса выберет правильный контроллер ... и я думаю, что он создает новый экземпляр этого, а затем контроллер обрабатывает запрос дальше. Если это так, то как быть с действиями, перенаправляющими на другие действия? Это также инициирует новый процесс маршрутизации и новый экземпляр контроллера?

Заранее спасибо.

1 Ответ

15 голосов
/ 17 марта 2010

Да, новый экземпляр создается для каждого запроса и уничтожается в конце запроса.

Каждый маршрут обрабатывается экземпляром MvcRouteHandler.Обработчик по умолчанию вызывает функцию ControllerFactory, которая на основе маркеров URL создает новый контроллер с помощью вызова отражения в Activator.CreateInstance ().

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