【发布时间】:2013-08-17 16:00:18
【问题描述】:
全部,
已经有很多关于 Unity Lifetime Managers 的帖子,但我还没有找到有人说明“在这些情况下,您应该始终使用 X”的良好经验法则。让我描述一下我的应用程序,我有一个 ASP.NET MVC 4 Web 应用程序。我有一个包含 3 个项目的 Visual Studio 解决方案,我的“核心”项目包含我所有的 EF 内容、一个测试项目和 MVC Web 项目。我正在使用 Unity 进行依赖注入,现在有以下代码:
// Context
container.RegisterType<IDatabaseFactory, DatabaseFactory>(
new ContainerControlledLifetimeManager();
container.RegisterType<UnitOfWork>(
new ContainerControlledLifetimeManager());
但是,我注意到我的上下文并没有随着我认为我想要的每个新 Web 请求而重新创建(如果我的假设有误,请告诉我)。我很难分析来自下面列出的站点的所有信息,并且阅读了很多人创建自己的名为 PerHttpRequestLifetimeManager 的类来处理这个问题。
真正的最佳实践是什么?
- Microsoft 开发人员网络了解终身经理 - http://msdn.microsoft.com/en-us/library/ff660872(v=PandP.20).aspx
- MVC DI 和 Unity 与 Lifetime Manager 通过 CodeProject - http://www.codeproject.com/Articles/424743/MVC-DI-Unity-with-Lifetime-Manager
- ASP.NET MVC 技巧:通过 Shiju Varghese 的博客使用 Unity 应用程序块进行依赖注入 - http://weblogs.asp.net/shijuvarghese/archive/2008/10/24/asp-net-mvc-tip-dependency-injection-with-unity-application-block.aspx
- MVC、EF - 通过 Stack Overflow 在 Unity 中的 DataContext 单例实例 Per-Web-Request - MVC, EF - DataContext singleton instance Per-Web-Request in Unity
- 通过 Stack Overflow 使用 Unity 跨多种类型注入相同的 DataContext 实例 - Inject same DataContext instance across several types with Unity
【问题讨论】:
标签: entity-framework asp.net-mvc-4 dependency-injection unity-container httprequest