1. 프로젝트에 다음 클래스를 추가한다.-----------------------------
2. Global.asax.cs의 Application_Start메서드에 다음 코드를 추가한다.
Ninject사용에 필요한 사전준비는 끝났다.
- using Ninject;
- using SportsStore.Domain.Abstract;
- using System;
- using System.Web.Mvc;
- namespace SportsStore.WebUI.Infrastructure
- {
- 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<IProductRepository>().To<IProductRepository>();
- }
- }
- }
2. Global.asax.cs의 Application_Start메서드에 다음 코드를 추가한다.
- ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());
Ninject사용에 필요한 사전준비는 끝났다.