我正在使用unity2.0和MVC3,需要一些帮助来理解LifeTimeManagers。我读到过很多人使用将项目放入HTTPContext的自定义LifeTimeManager。这非常有意义,因为在MVC中,您只需要在请求的生命周期内使用UoW。但是,我的存储库和服务是否需要相同的生命周期管理器?我在查看this post时,注意到UoW、存储库和服务的生命周期管理器是相同的。
我的存储库依赖于UoW,而我的服务依赖于存储库。我不确定Unity在默认情况下对生命周期管理器做了什么,但我确实创建了一个自定义的HttpContext管理器,并且在UoW上遇到了问题。我还没有把它放到我的任何服务或存储库中。我想知道我是否需要这样做,或者这是否是最好的做法。
发布于 2012-01-06 05:07:17
只需使用unity.mvc3的Nuget包,它就包含了一个hierarchicallifetimemanager。当您注册需要在映射中处理的类型时,它将处理它们。不要担心直接使用httpcontext做任何事情,这要容易得多。
请参阅关于IDisposable依赖项的部分
http://www.devtrends.co.uk/blog/integrating-the-unity.mvc3-1.1-nuget-package-from-scratch
对于您希望显式处理的任何内容(实现IDisposable),请使用此生命周期管理器:
container.RegisterType(new HierarchicalLifetimeManager());https://stackoverflow.com/questions/8749379
复制相似问题