본문 바로가기

.NET/MVC.NET

AutoFac을 이용한 IOC컨테이너 사용하기

요즘 우리회사는 새로운 플랫폼 MVC Razor를 기반으로 한 Web Project 진행이 한창이다.

여기서 DI프레임웤을 뭘로 쓸까 고민하다가

AutoFac이라는 놈을 쓰기로 했다. 사용하기도 쉽고 편하다 게다가 MVC3와 통합된 모듈도 제공된다.

 
1,  Nuget에서 Autofac을 치고 Autofac ASP.NET MVC3 Integration을 설치한다.  

 
2. 설치가 됐으면 
Global.asax 파일에 아래와 같이 컨트롤러와 필요한 등록에 컨테이너에 등록에 필요한 어셈플리를 포함시킨다.

 var builder = new ContainerBuilder();
        Assembly assemblyService = Assembly.Load("Test");
        builder.RegisterControllers(Assembly.GetExecutingAssembly());
        builder.RegisterAssemblyTypes(assemblyService).AsImplementedInterfaces();
        IContainer container = builder.Build();
        DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

3. 컨트롤로 어디서나 등록된 객체들을 사용할수 있다.  
var test = DependencyResolver.Current.GetService<IStudyService>();

위와 같이 코딩을하여 서비스가 구현된 인터페이스를 받고

사용하면 된다. 참 쉽죠잉..!!!!