C# 依赖注入是否会导致额外的内存消耗?
当前应用程序是由其他开发人员使用Unity通过依赖项注入开发的。该应用程序是在MVC4和实体框架中开发的。此应用程序不是大型应用程序,甚至不是中型应用程序 现在,团队希望删除依赖项注入,因为它消耗了大量内存 我的问题是C# 依赖注入是否会导致额外的内存消耗?,c#,asp.net-mvc-4,dependency-injection,unity-container,C#,Asp.net Mvc 4,Dependency Injection,Unity Container,当前应用程序是由其他开发人员使用Unity通过依赖项注入开发的。该应用程序是在MVC4和实体框架中开发的。此应用程序不是大型应用程序,甚至不是中型应用程序 现在,团队希望删除依赖项注入,因为它消耗了大量内存 我的问题是 依赖注入真的会消耗大量内存吗 应用依赖项注入的优点是什么 使用统一的目的是什么 如何从应用程序中删除依赖项注入 我认为您需要首先了解依赖注入是什么,这可能会给您所有4个问题的答案 从这个问题中可以找到一个很好的答案简而言之,删除Unity不太可能解决您的内存问题。此外,U
我认为您需要首先了解依赖注入是什么,这可能会给您所有4个问题的答案
从这个问题中可以找到一个很好的答案简而言之,删除Unity不太可能解决您的内存问题。此外,Unity(及其同类)是控制反转(InversionofControl,IoC)容器,而不是依赖注入。快速谷歌一下,这样你就可以把你的术语弄清楚 依次回答每个问题: 1)依赖注入真的会消耗大量内存吗? IoC容器不会消耗大量内存(如果使用得当的话),很多非常大的系统都会使用IoC容器。内存消耗可能是系统中其他地方的一个问题。你为什么怀疑你的IoC容器是罪魁祸首?你介绍过吗 2)依赖项注入的优点? 一是它让您考虑系统中的依赖关系,而不是仅仅更新所有内容。。。它还允许您使其更易于测试和动态,即您可以更轻松地交换“组件” 3)统一、依赖注入的目的是什么? 其思想是,您根据接口而不是具体实现进行编程。这将启用TDD(使用模拟等)和其他最佳实践。这还意味着您可以更轻松地交换实现,而不必破坏一切 4)如何从应用程序中删除此依赖项注入? 不要。。。你不会解决你的记忆问题,但会带来很多其他问题。。。如果有什么问题的话,你更有可能使你当前的问题变得复杂 也就是说。。。如果您错误地配置了Unity,并设置了一些strage生存期等,那么很可能是您以这种方式泄漏内存。然而,把婴儿连同洗澡水一起扔出去并不是前进的方向
DbContext
保持活动的时间太长(比单个请求长)。如果这样做,通常会遇到大量问题,例如并发错误和内存泄漏。然而,这与依赖注入没有严格的关系,即使不使用DI,也很容易意外地将DbContext
缓存太长时间