方案: 我使用以下链接设置了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完成的吗?
答案 0 :(得分:2)
Kernel.Get<Service>()
。您应该在需要此依赖关系的控制器的构造函数中请求IService
。当MVC需要这个控制器时,它会要求Ninject创建控制器实例,Ninject会将服务注入控制器。