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사용에 필요한 사전준비는 끝났다.
댓글 없음:
댓글 쓰기