2

NugetNinject.MVC3パッケージを使用して Ninject を MVC 4 プロジェクトに統合しました。「ブートストラップ」を持つApp_Startというクラスが含まれていることがわかります。NinjectWebCommon標準的な手順に従って、インターフェイスの具体的なインスタンスをコントローラーに挿入できます。デバッガーは、これがNinjectDependencyResolverクラスによって提供されていることを示します。

ただし、標準メソッドを使用してこのNinjectDependencyResolverクラスが設定されているNinjectコードを調べてもわかりません。ですから、私が単に無能なだけなのか、それとも別の方法でこれが夢中になっているのかどうかはわかりません.誰かが私を啓発できますか?IDependencyResolverDependencyResolver.SetResolver

4

1 に答える 1

2

IDependencyResolverasp.net MVC フレームワークに同梱されており、コントローラーやその他のコンポーネントに依存性注入を実装できます (asp.net MVC は内部で使用します)。

ここでは利点について説明しませんが、ここで良い紹介を読むことができます。

IoC フレームワーク (Ninject、Unity、StructureMap など) を MVC に追加する場合、Ioc コードをネイティブの依存関係リゾルバーにプラグインする必要がありますIDependencyResolver。DependencyResolver 静的クラスは、特に登録ポイントです。DependencyResolver.SetResolver(IDependencyResolver resolver)

しかし現在、多くの Ioc フレームワークには Ninject.MVC や StructureMap.MVC などの MVC 統合パッケージが付属しています。私たちにとっては簡単で (多くの場合、より堅牢です)、実際にその方法を知る必要はありません。

リポジトリNinject.Web.MvcのNinjectMvcHttpApplicationPluginをざっと見てみると、接着剤がわかります。

于 2013-10-25T12:11:14.990 に答える