我正在使用Unity 2.0和MVC3,需要一些帮助来理解LifeTimeManagers。我已经阅读了很多人使用自定义LifeTimeManager将项目放入HTTPContext。这非常有意义,因为您只希望在MVC中请求的生命周期内使用UoW。但是,我是否需要为我的存储库和服务使用相同的生命周期管理器?我正在查看this post,并注意到UoW,存储库和服务的终身经理。
我的存储库依赖于UoW,我的服务依赖于存储库。我不确定Unity在生命周期管理器方面做了什么,但我确实创建了一个自定义的HttpContext管理器,并且只是在UoW上遇到了问题。我还没有把它放在我的任何服务或存储库上。我想知道我是否需要或者这是否是最好的做法。
答案 0 :(得分:1)
只需将nuget包用于unity.mvc3,它就包含了hierarchylifetimemanager。当您注册需要在映射中处理的类型时,它将处理它们。 不要担心直接使用httpcontext做任何事情,这要容易得多。
参见上一节 IDisposable依赖
http://www.devtrends.co.uk/blog/integrating-the-unity.mvc3-1.1-nuget-package-from-scratch
对于您想要明确处理的任何内容(实现IDisposable),请使用此生命周期管理器:
container.RegisterType(new HierarchicalLifetimeManager());