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사용에 필요한 사전준비는 끝났다.