2012-06-28 3 views
0

시나리오가 해결됩니다 않는 방법 : 나는 아래의 링크를 사용하여 Ninject에 MVC3을 설정 한 : https://github.com/ninject/ninject.web.mvc/wiki/Setting-up-an-MVC3-applicationNinject에 MVC3 - 유형

나는 Nuget 버전을 따랐다. 그리고 코드는 아래와 같습니다 :

누군가가 아래의 코드가 언제 어디서 발췌되는지 이해할 수 있습니까?

var test=Kernel.Get<Service>(); 

기본적으로 구체적인 유형을 어디에서 해결할 것인지 이해하려고합니다.

UPDATE :

내 질문은 MVC가 Kernel.Get를 사용 않는 경우의 더는() 구체적인 유형에, 지정된 인터페이스를 해결합니다.

Ninject.MVC가이 작업을 수행합니까?

+0

저는 맞춤 컨트롤러 팩토리를 사용하고 있습니다. 내 컨트롤러의 생성자는 리포지토리, 서비스 등의 매개 변수를 필요로합니다. –

+0

여기 링크가 있습니다. http://www.craftyfella.com/2010/02/creating-aspnet-mvc-2 -controller.html –

+0

다른 링크 https://github.com/ninject/ninject.web.mvc –

답변

2

Kernel.Get<Service>() 어디에도 전화하지 않아야합니다. 이 종속성이 필요한 컨트롤러의 생성자에서 IService을 요청해야합니다. MVC가이 컨트롤러를 필요로 할 때 Ninject는 컨트롤러 인스턴스를 생성하도록 요청하고 Ninject는 컨트롤러에 서비스를 삽입합니다.

+0

+1 @Myagdi 좀 더 노골적인 정보 : Ninject.MVC3은 IIS의 앱을 시작할 때 MVC에 "Ninject를 사용하여 컨트롤러를 생성하라"는 명령을 내린 App_Start (App_Start)에 넣습니다 (이는 Remo 시퀀스가 ​​어떻게 가능하게되는지를 보여줍니다) –