We know that behind the scenes, the ASP.NET MVC framework will use reflection to determine what controllers/actions are available to be executed, based on which classes der
This is done in an internal class in the System.Web.Mvc assembly called System.Web.Mvc.ControllerTypeCache.
internal
System.Web.Mvc
System.Web.Mvc.ControllerTypeCache
By the way, action methods are not required to return ActionResult. They can return void happily, for instance.
ActionResult
void