Ответы пользователя по тегу .NET
  • Asp.net mvc3 -> Autofac вопрос?

    если я правильно понял вопрос, то можно это сделать через фабрику контроллеров

    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
    Ответ написан
    4 комментария