与DI的MVC5身份(删除服务定位器反模式)

时间:2016-03-26 16:16:46

标签: c# asp.net-mvc-5 entity-framework-6 asp.net-identity

我正在尝试删除默认情况下使用新MVC5项目提供的服务定位器反模式。我试图使用Ninject来实现DI。我已经提到了以下指南,它是为了统一而不是MVC5应用程序。

http://tech.trailmax.info/2014/09/aspnet-identity-and-ioc-container-registration/

据我所知,该文章与新MVC5应用程序之间的代码差别不大。然而,有一件事我似乎无法弄清楚该怎么做。

在我上面提供的文章中存在以下方法

private static void RegisterTypes(IUnityContainer container)
{
    container.RegisterType<ApplicationDbContext>();
    container.RegisterType<ApplicationSignInManager>();
    container.RegisterType<ApplicationUserManager>();
}

我试图了解这个容器是什么以及我将在MVC5中注册我的类。我是否需要将我的课程注册到某个容器中?还在这里学习,我对MVC5和身份都很陌生,所以任何帮助都是最受欢迎的。

1 个答案:

答案 0 :(得分:0)

容器包含每个抽象及其实现的配置设置。 container用于创建依赖项,并在需要时自动注入它们。只要需要抽象实例,容器就会将其提供给请求者。它根据请求自动创建对象,并在需要时注入它们。容器有助于以简单方便的方式管理应用程序中的依赖关系。