Ninject MVC3 - 如何解析类型

时间:2012-06-28 10:54:59

标签: ninject ninject.web.mvc

方案: 我使用以下链接设置了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完成的吗?

1 个答案:

答案 0 :(得分:2)

不应该在任何地方调用{p> Kernel.Get<Service>()。您应该在需要此依赖关系的控制器的构造函数中请求IService。当MVC需要这个控制器时,它会要求Ninject创建控制器实例,Ninject会将服务注入控制器。