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

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

Спасибо заранее.

Ответ 1

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

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