2

다음 구성 요소가있는 다중 계층 콘솔 응용 프로그램이 있습니다. - 데이터 액세스 계층 - 도메인 계층 - 데이터 액세스 계층에 정의 된 데이터 저장소 클래스를 사용합니다. - 엔진 응용 프로그램을 가리키고 도메인 계층 클래스를 사용하여 작업을 조정합니다.Ninject 다중 계층 콘솔 응용 프로그램

데이터 액세스 계층 클래스와 도메인 계층 클래스는 일련의 인터페이스를 구현합니다. 내가 DI를 어떻게 추천하니? 내 도메인 클래스와 엔진 클래스 모두에서 Ninject에 대한 참조가 필요합니까? 한 곳에서 바인딩을 수행하는 다른 방법이 있습니까? 이것을 수행하는 가장 좋은 패턴은 무엇입니까?

저는 DI와 Ninject로 시작 했으므로 도움, 예제 및 설명이 도움이 될 것입니다.

+0

manning.com/seemann을 잊지 말고 직접 대답 할 수 있습니다 (그러나 Ninject를 직접 커버하지는 않습니다). –

답변

3

간단한 예제를 작성하여 내 github에 추가합니다. 거기에 30 분 정도가 있어야합니다.

편집 a.s.a.p 여기에 링크를 게시 할 예정입니다 : ConsoleApplicationNinject

편집 : 여기 당신은 샘플 프로젝트를 그리고 주어질거야 바인딩 할 곳이다.

+0

확인하지만 활성화 블록은 더 이상 사용되지 않습니다. http://www.planetgeek.ch/2012/04/23/future-of-activation-blocks/http://stackoverflow.com/a/15836383/11635 흥미있을 수도 있습니다 –

+0

Ruben : 그 사실을 몰랐습니다. Ninject는 빈약 한 (또는 숨겨진) 문서를 가지고 있습니다. 어쨌든, 그것은 작동하고 우리가 거기에 대처하는 요청이 없기 때문에 우리는 웹 소켓과 함께 사용합니다. 미래의 독서를위한 당신의 연결 고리를 갖는 것이 좋습니다. – Uffe

+0

활성화 블록 구현은 아이디어의 떠 다니는 부분 일 뿐이며 NamedScope 항목 (esp'CreateNamedScope')은 새로운 기능입니다. 나는 곧 사용자 정의 요청 범위 지정 (및 CreateNamedScope 자체)을 위해'Ninject.Extensions.NamedScope'에서 PR 및/또는 문서를 수행 할 것입니다 - 이제 붙여 넣은 상태로 제작 중에 있습니다. 또한 https://github.com/ninject/ninject/wiki/Object-Scopes가 최근에 업데이트되고 많은 주요 정보 비트로 확장되었습니다. –

관련 문제