если я правильно понял вопрос, то можно это сделать через фабрику контроллеров
Global.asax.cs:
protected void Application_Start()
{
// ...
ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());
}
NinjectControllerFactory.cs:
public class NinjectControllerFactory : DefaultControllerFactory
{
private IKernel _ninjectKernel;
public NinjectControllerFactory()
{
_ninjectKernel = new StandardKernel();
AddBindings();
}
protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType)
{
return controllerType == null
? null
: (IController)_ninjectKernel.Get(controllerType);
}
private void AddBindings()
{
_ninjectKernel.Bind<ISomeInterface>().To<SomeClass>();
}
}
Controller:
public class MyController : Controller
{
public MyController(ISomeInterface inter)
{
_inter = inter;
}
// ...
}
Пример взят из книжки Pro ASP NET MVC 3 Framework авторства Adam Freeman и Steven Sanderson