0

Ninject 1 では、パラメーター名に応じて特定のインスタンスを与えることができたことがわかっています。

例 public SomeClass(ISomething left, ISomething right) {}

ISomething はデフォルトの ISomething に解決されますが、ISomething は別のバインディングに解決されます。

Ninject 2+でこれを行うにはどうすればよいですか?

注: [Named("XZ")] を使用したくありません。アプリケーションのメイン dll を Ninject の依存関係にする必要があるためです。現在、Ninject に依存する別の DLL CompositionRoot があり、それ以外には何もありません。メインの dll は Ninject なしで使用できます。そのままにしておきたいと思います。

編集:最初の回答の後、単純/複雑ではなく左/右を使用するように例を更新しました。この依存関係を継承構造にハードコーディングしたくありません。

4

2 に答える 2

2

ISimpleSomething派生インターフェイスとを作成してみませんIComplexSomethingか?

そうすれば、それぞれに追加の機能を公開できます。

interface ISomething { ... }
interface IComplexSomething : ISomething { ... }
interface ISimpleSomething : ISomething { ... }
于 2013-09-12T12:07:46.217 に答える