ASP.NET/ASP.NET MVC

종속성주입 (Dependency Injection) Ninject 라이브러리 1

http://portfolio.wonpaper.net 2019. 11. 17. 15:20

asp.net MVC5 공부중에 DI 를 접하면서, Ninject 라이브러리를 사용하게 되었다.

 

Ninject 가 가볍고 DI에 아주 효과적으로 처리해주며 하나의 인스턴스도 유지시켜 준다.

 

 Pro ASP.Net MVC5 , 애덤 프리먼의 책에 소개되고 있는  Ninject 버전이 3.2.0 이 과거의 구버전인데

최신버전은 3.3대로 올라와 있는데, 예제를 실습하면서 3.3 버전을 컴파일하니깐 아래와 같은 에러메세지를 접했다.

또한 Ninject 를 설치하면 /App_start 폴더에 NinjectWebCommon.cs 도 자동 셋팅되는데, 이놈도 설치되지 않았다.

 

구글링하여 이에 대해 질문답변글을 검색해보면 StackFlow 에 아래와 같이 3.2 의 구버전 활용이 정답이었다.

NinjectWebCommon.cs 안에 들어있는 Ninject.Web.Common.WebHost 가 3.2.0 가 3.3.0 최신 버전에는 NinjectHttpApplication 클래스가 제공해 주기 때문에 NinjectWebCommon.cs 가 사라졌다는 내용이다.

 

결구 Ninject 관련 라이브러리를 3.2 대로 DownGrade 시키고 다시 컴파일했다.

 

그리고, 마지막으로 Web.config 파일의 Ninject 관련 버전도 직접 3.2.0 로 수정해 주어야 정상적으로 결과 화면을 볼수 있다. 재컴파일해도 이와 같은 환경설정 파일은 직접 수정해 주어야 한다.