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 需要这个控制器时,它会要求 Ninject 创建控制器实例,然后 Ninject 会将服务注入到控制器中。

于 2012-07-02T10:12:02.743 回答