Ответ 1
Предполагая, что запрос входит в область ApiController, порядок операций выглядит следующим образом:
- Вызывается
ExecuteAsync
методApiController
. - Вызывается метод
Initialize
ApiController
. - Получается зарегистрированный селектор действий.
- Вызывается метод
SelectAction
зарегистрированного селектора действий. Если согласован только один метод действия, трубопровод продолжается. - Все зарегистрированные фильтры для выбранного действия будут восстановлены.
- Вызываются авторизационные фильтры. Фильтр авторизации может решить, разрешить конвейеру продолжать выполнение или завершить конвейер.
- Если фильтры авторизации не завершили запрос, выполняются привязки параметров действия.
-
ApiController.ModelState
. - Вызывается действие фильтра. Фильтры действий решают либо позволить конвейеру продолжать выполнение или завершение работы конвейера.
- Если Action Filters не завершили запрос, будет восстановлен зарегистрированный Action Invoker.
- Метод
InvokeActionAsync
зарегистрированного Action Invoker вызывается для вызова выбранного метода действий. - Примечание. Если из выполнения фильтров авторизации возникает какое-либо исключение для выполнения метода действия, вызывается фильтр исключений.
Есть еще несколько вещей, которые происходят между ними, но это очень близко к полному виду. Подробнее читайте ApiController
исходный код.