关于c#:为什么在MVC应用程序中使用IoC?

Why When use IoC in MVC Application?

本问题已经有最佳答案,请猛点这里访问。

我有一般性的问题

1)为什么在ASP.NET应用程序中需要IOC?

2)何时使用

3)如果我的MVC应用程序中不使用结构映射,我会错过什么?

很遗憾,我对DI有问题,请简单解释


  • 你不需要它。使用它提供了优势,但它不是必需的。
  • 从较低层创建类型实例时,例如,创建服务的控制器或创建存储库的服务。
  • IOC主要帮助分离层。例如,我们正在创建一个应用程序,其中服务层与网站位于同一文件夹中。有一个机会,它稍后将被分解成一个Web服务。因为网站使用IOC来创建服务对象,所以这种更改不需要对网站的代码进行任何调整。我们只需改变IOC的配置,它就可以工作了。

  • 因为这是一种良好的做法。代码更清晰,更易于维护。
  • 例如,我在控制器构造函数(我将存储库和服务作为参数传递)和存储库(我将dbContext作为参数传递)中使用它,但这取决于项目的体系结构。
  • 结构图是IOC的容器之一(我个人更喜欢ninject或funq)所以如果没有它,你就会错过使用IOC的所有优势。