0

シナリオ: 以下のリンクを使用して Ninject MVC3 をセットアップしました: https://github.com/ninject/ninject.web.mvc/wiki/Setting-up-an-MVC3-application

Nugetバージョンに従いました。そして、コードは次のようになります。

private static void RegisterServices(IKernel kernel)
    {
        kernel.Bind<IService>().<Service>();
    }   

以下のコードがいつどこで実行されるかを理解するのを手伝ってくれる人はいますか?

var test=Kernel.Get<Service>();

基本的に、具体的な型をどこで解決するのかを理解しようとしています。

更新

私の質問は、MVC が Kernel.Get() を使用して特定のインターフェイスを具象型に解決する場所です。

これは Ninject.MVC によって行われますか?

4

1 に答える 1

2

Kernel.Get<Service>()どこにも呼ばれるべきではありません。IServiceこの依存関係を必要とするコントローラーのコンストラクターでを要求する必要があります。MVCがこのコントローラーを必要とする場合、MVCはNinjectにコントローラーインスタンスを作成するように要求し、Ninjectはサービスをコントローラーに注入します。

于 2012-07-02T10:12:02.743 に答える