1

ninject の従来のバインディングを使用して、自己およびすべてのインターフェイスにバインドする方法はありますか。

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

上記のコードはすべてのインターフェイスを実行しますが、同じステートメントで自分自身にもバインドする方法を見つけることができないようです。

4

1 に答える 1

2

スタブ アウトの Implicit Self Binding (オーバーライドを提供することによって)を明示的にオフにしない限り、2 年前の私が忘れていたこの回答で説明されているように、自己バインディングは必要に応じて Ninject によってオンザフライで生成されます [これは醜いですAutoFac はこの混乱には陥りません... また、いくつかの実装の混乱とテストケースにつながりますが、私の知る限り、Ninject のユーザーの観点からは問題はありません]。NinjectSettings

( ) 拡張メソッドは、通常のチェーンBindToSelfの と対称的です。つまり、「なんでも - 重要なビットに到達します...」と言ってから、たとえば Scoping をオーバーライドできます。ToSelfBind

于 2013-05-15T14:38:57.890 に答える