2010-12-06 5 views
45

일반 IRepository <> 내 일반 저장소 <에 대한 인터페이스를 바인딩하려고합니다. 그러나 항상 null을 반환합니까? 나는 그것이 꿈처럼 작동하는 제네릭이 아닌 인터페이스와 다음 수업 시간에 통과 그러나 경우Ninject + 일반 저장소에 바인딩

Bind(typeof(IRepository<CustomerModel>)).To(typeof(Repository<CustomerModel>)); 
Bind(typeof(IRepository<>)).To(typeof(Repository<>)); 

:

내가 좋아하는 여러 가지를 시도?

답변

75
Bind(typeof(IRepository<>)).To(typeof(Repository<>)); 

이 개방 일반적인 결합에 대한 올바른 신택스이다.

IRepository <에 whatever>을 (를) 요청할 때 null이 반환되는 경우 공유하지 않은 코드 영역에 다른 문제가있을 수 있습니다.

+0

완벽! 네 말이 맞았 어. My Repository consturctor는 인터페이스에 의존합니다 - 이제는 나의 저장소에서 사용하는 인터페이스도 바인드했으며 작동합니다! - 감사. – ebb

+5

@qes IRepository가 두 개 이상의 유형 인수 (즉, IRepository )를 사용하는 경우 구문은 무엇입니까? 감사합니다. http://stackoverflow.com/q/6740992/88709 감사합니다. –

2

내 대답은 MVC3 Controller constructor + Ninject입니다.

일반 바인딩은 Ninject에서 올바르게 작동합니다. Repository에서 매개 변수없는 생성자를 사용해보십시오. 문제가 있다고 생각합니다.