【问题标题】:Using Unity and a custom LifetimemManger for Unit Of Work / Repositories / Services on an MVC3 application?在 MVC3 应用程序上为工作单元/存储库/服务使用 Unity 和自定义 LifetimemManger?
【发布时间】:2012-01-05 20:33:18
【问题描述】:

我正在使用带有 MVC3 的 unity 2.0,需要一些帮助来理解 LifeTimeManager。我读过很多人使用将项目放入 HTTPContext 的自定义 LifeTimeManager。这是非常有意义的,因为您只希望在 MVC 中的请求的整个生命周期中都存在 UoW。但是,我的存储库和服务是否需要相同的生命周期管理器?我在查看 this post 并注意到 UoW、存储库和服务的生命周期管理器相同。

我的存储库依赖于 UoW,而我的服务依赖于存储库。我不确定 Unity 默认情况下对生命周期管理器做了什么,但我确实创建了一个自定义 HttpContext 管理器,并且在 UoW 上遇到了问题。我还没有把它放在我的任何服务或存储库上。我想知道我是否需要这样做,或者这是否是最佳做法。

【问题讨论】:

    标签: asp.net-mvc-3 entity-framework entity-framework-4 unity-container


    【解决方案1】:

    只需将 Nuget 包用于 unity.mvc3,它包含一个分层生命周期管理器。当您在映射中注册需要处置的类型时,它会处置它们。 不用担心直接用 httpcontext 做任何事情,这要容易得多。

    参见章节 IDisposable 依赖项

    http://www.devtrends.co.uk/blog/integrating-the-unity.mvc3-1.1-nuget-package-from-scratch

    对于您想要明确处置的任何东西(实现 IDisposable),请使用此生命周期管理器:

    
    container.RegisterType(new HierarchicalLifetimeManager());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-11
      • 1970-01-01
      • 2016-06-27
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      相关资源
      最近更新 更多