2012-01-13 19 views
1

「このインターフェイスのリストから1つまたは複数のインターフェイスを継承するインターフェイス」をninject 2を使用して特定のプロバイダに提供したいと思います。ここではIBindingResolverの実装が適切でしょうか?バインドをカスタマイズする方法

+0

だから、インターフェイスにアプリ内のインターフェースIのすべての実装をバインドしたいと思いますか? –

答えて

1

なし - 使用ninject.extensions.conventions代わり

kernel.Bind(
    x => x.FromThisAssembly() 
      .SelectTypesInheritedFrom<IMyInterface>() 
      .BindToAllInterfaces() 
      .Configure((c, s) => c.InSingletonScope())); 
+0

これは質問された質問に対する最良の回答ですが、私にとってはうまくいくとは思えません。私はこの時点でOpenGenericBindingResolverを例として見ています。 – JeffreyABecker

+0

私は3つのアセンブリを持っています:ドメインはインターフェイスを定義し、データは実装を定義し、Webは消費します。ドメインはIFooとIBarを定義します。両方を消費するWebのコントローラはIFooBarを定義し、それを消費します。理想的には、私がしたいのは、それらの集約インターフェースを検出し、呼び出しを個々の実装に委譲する代行プロキシを返すことです。私はエクステンションのコンベンションでそれをどうやってやるのか分かりません。 – JeffreyABecker

+0

@JeffreyABeckerこの場合、インターフェイスをプロキシにバインドするために独自のIBindingGeneratorを記述する必要があります。 あなたは本当にそのような醜いものをduしたいですか?何のために? IFooとIBarをコントローラに別々に注入するだけでいいのですか?依存関係の数を減らすための回避策ですか?その場合、SRPに従わない可能性が高い実際の問題を解決してください。 –

関連する問題