This may be stupid question, but I am looking at Ninject sources and don’t see NInject registering its own controller factory. I also don’t see any IControllerFactory class in Ninject.Web.Mvc assembly. Am I missing something? How does Ninject create controller and inject parameters into constructor?
This may be stupid question, but I am looking at Ninject sources and don’t
Share
DefaultControllerFactory, the same as non-Ninject applications.DefaultControllerFactoryfinds type for controller (TaskController).DefaultControllerFactoryhas internal class calledDefaultControllerActivator.DefaultControllerActivatorhas method calledCreate, which returns controller instance.DefaultControllerFactoryasksDefaultControllerActivatorforTaskControllertype instance.DefaultControllerActivator.CreateusesIDependencyResolver. This is whereNinjectcomes in. SinceNinjectimplements its own resolver and sets it at the start of application, he gets request forTaskControllerinstance.Ninjectfinds constructor for this type, injects parameters, returns controller instance.