Asp.net mvc 在共享视图中使用ninject绑定接口
我使用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
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 >();
}