Asp.net mvc 在共享视图中使用ninject绑定接口

Asp.net mvc 在共享视图中使用ninject绑定接口,asp.net-mvc,ninject,Asp.net Mvc,Ninject,我使用ninject将接口绑定到存储库,如您所见: private static void RegisterServices(IKernel kernel) { kernel.Bind<CMSDataContext>().To<CMSDataContext>().InRequestScope(); kernel.Bind<IUserRepository>().To<UserReposit

我使用ninject将接口绑定到存储库,如您所见:

  private static void RegisterServices(IKernel kernel)
        {
            kernel.Bind<CMSDataContext>().To<CMSDataContext>().InRequestScope();
            kernel.Bind<IUserRepository>().To<UserRepository>().InRequestScope();
            kernel.Bind<INewsRepository>().To<NewsRepository>().InRequestScope();
            kernel.Bind<IConfigurationRepository>().To<ConfigurationRepository>().InRequestScope();


        } 
但我需要在我的共享视图中调用一个接口,我指的是母版页,正如您在这里看到的:

<head>
    @{
        IConfigurationRepository _iconfigurationRepository;
    }
    <!-- Basic -->
    <title>@ViewBag.Configuration.Title</title>

    <!-- Define Charset -->
    <meta charset="utf-8" />

我的问题是如何在视图中将此接口绑定到其存储库?我是说使用ninject的configurationRepository?

如果需要在视图中解析依赖项,可以使用dependencyResolver

在你看来:

@{
    var config = DependencyResolver.Current.GetService<IConfigurationRepository >(); 
}

在这种情况下,如果ninject可以解析构造函数参数,那么ninject就是当前的依赖项解析程序,您可以在视图、过滤器、控制器、,等等。

您可以从视图中使用DependencyResolver。您可以提供更多详细信息吗?您应该为视图创建一个模型,并在控制器中填充模型值-视图不应该真正转到IOC容器中!是的,依赖解析程序是一个抽象,它可以由许多ioc构建。
@{
    var config = DependencyResolver.Current.GetService<IConfigurationRepository >(); 
}