2010-07-10 5 views
3

ninject 2.0을 사용하여 ninject를 처음 사용했습니다. 내 응용 프로그램은 asp.net mvc에서 호스팅됩니다.인스턴스를 작성하기 위해 커널에 액세스하는 방법을 알려주십시오.

이제 클래스 라이브러리에서 생성 된 커널에 액세스하는 방법을 모르겠습니다.

나는 global.aspx에 커널을 만들고 모든 모듈을로드해야한다고 생각합니다. 하지만 어떻게 응용 프로그램 전체에서 사용할 수 있습니까?

protected void Application_Start() 
    { 
     RegisterRoutes(RouteTable.Routes); 

     IKernel kernel = new StandardKernel(new ServiceModule()); 
    } 

위에서 만든 커널은 어디에서 만들어야합니까? 어떻게 액세스 할 수 있습니까?

답변

2

Ninject.Web.Mvc에 대한 on the Ninject Dojo's extensions section을보십시오. 이렇게하면 이러한 것을 관리하기위한 기본 패턴이 표시됩니다 (소스보기).

그대로 사용하거나 (대부분의 사람들이 원하는대로) 사용자 지정할 수 있습니다.

또한 CSL로 태그를 지정했습니다. Ninject for Service Location을 사용하기 전에 이것이 왜 반 패턴으로 간주되는지에 대해 조사해보십시오. (기본적으로 참조되는 확장은 을 공개하지 않습니다. Global) - public 자신을 추가해야합니다 (단, WCF 다른 한 편으로 통합)

+2

@mamu : 아무도 집에 없습니까? 어떤 후속 조치라도 응답 할 것입니다 ... –

+1

나는 지금 당장 필요로하는 곳에서 mvc extention으로 커널을 주입하여 작동시키고 있습니다. 하지만 커널을 주입 할 때 커널을 주입 할 때 해킹과 같이 보입니다. HttpApplication의 전역 속성에 액세스하는 것은 그렇게 설득력이 없습니다. 커널 전용으로 CSL을 사용하는 방법은 무엇입니까? ~ 싶다. 자동 주입, 나는 CSL에서 커널을 얻을 수 있고 IOC를 할 수 있습니까? – mamu

+0

또한 나는 단지 생성자 주입을 원하지 않는 부분에 대해서만 이야기하고 있습니다. 대부분의 구현은 자동 생성자 삽입과 관련되어 있습니다. – mamu

관련 문제