2012-01-20 2 views
4

인터페이스가 두 개의 다른 클래스로 구현되어 있습니다. 그런 다음 어떻게 Ninject를 구현 A에 바인딩하고 다른 B 어셈블리를 구현 B에 바인딩하겠습니까?Ninject : 대상 어셈블리에 따라 인터페이스를 바인딩하는 방법

+0

당신이 여러 어셈블리가 있음을 명시하라는 메시지를 표시 할 수있는 관련 요인이라고 생각합니까, 당신이 그것을 '정상'으로 서로 다른 사용하게하는 것이 어떻게 인식 하는가? –

+1

이것을 "조건부 바인딩"이라고합니다. Google과 귀하의 답변을드립니다. –

+1

질문은 모호합니다. 예를 보여주십시오. 다른 어셈블리에있는 클래스에 인터페이스를 삽입하는 것에 대해 이야기하고 있습니까? – Steven

답변

5

당신은 contextual binding 사용할 수 있습니다

Bind<IFoo>.To<Foo>.When(request => 
    request.Target.Type.Assembly.FullName == "someAssembly"); 
Bind<IFoo>.To<Bar>.When(request => 
    request.Target.Type.Assembly.FullName == "someOtherAssembly"); 
+0

매력처럼 작동했습니다! 고맙습니다! – Pato

관련 문제