2013-05-15 4 views
1

ninject의 기존 바인딩을 사용하여 자체 및 모든 인터페이스에 바인드하는 방법이 있습니까?Conventional 자체 및 모든 인터페이스에 바인딩합니다. Ninject

_container.Bind(x => x.From(_assemblyList) 
         .SelectAllClasses() 
         .BindAllInterfaces()); 

위의 코드는 모든 인터페이스를 수행하지만 동일한 문에서 자체에 바인딩하는 방법을 찾지 못하는 것 같습니다.

+1

IIRC NinjectSettings 무시로 암시 적 자체 바인딩을 해제하지 않으면 자체 바인딩이 즉시 생성됩니다 (추악한데 AutoFac은이 혼란에 빠지게됩니다 ...). IOW는 이것이 당신을 위해 문제를 일으키는 것입니다 (나는 잘못 이해할 수는 있지만 필연적이라고 생각합니다). 'BindToSelf'는 '여기에 어떤 인터페이스도 바인딩하지 마라'라는 말의 의미로만 존재합니다. ...이 중 하나가 나오면 위키가 편집을 통해 더 명확하게 할 수있는 기회가 생깁니다. 또는 xmldocs에 대한 홍보입니다. –

+0

아니요, 실제로는 내가하고 싶은 일입니다. 우리는 자기 자신에게 구속력을 필요로하는 우리의 앱 (우리는 부트 스트랩하는 사람)에 몇 가지 오래된 서비스를 가지고 있습니다. 자동으로 자동 바인딩되면 모두 양호합니다. 빠른 테스트를 수행하고 다시 확인하여 확인합니다. – McDonnellDean

+0

@RubenBartelink 녹색 눈금을 받기위한 답으로 의견을 게시 하시겠습니까? 암시 적이라는 점에서 당신은 맞습니다. – McDonnellDean

답변

2

명시 적으로 논의 in this answer by me from 2 years back I'd forgotten about로을 암시 적 자기 (A NinjectSettings 재정의를 제공하여) 바인딩을 스텁을 해제 하지 않는 한, 자기 바인딩이 필요로 Ninject에 의해 즉석에서 생성되는 추한 인 [발생 및 AutoFac은 '아무튼 이 엉망진창에 빠지다 ... 또한 구현의 난제와 테스트 케이스가 생기지 만 Ninject 사용자의 관점에서 볼 때 아무런 문제도 없다는 것을 알고있다.

() 확장 방법은 보통 Bind 체인의 ToSelf과 대칭입니다. 즉, '무엇이든 - 중요한 비트가 될 것입니다 ...'라고 말한 다음 예를 들어 재정의합니다. Scoping.

관련 문제