2012-01-20 7 views
4

私は2つの異なるクラスによって実装されたインターフェイスを持っています。それで、どのようにNinjectに実装Aにバインドしたいのか、実装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

関連する問題