我不知道如何用一种好的方式来描述这个,但是这里有。统一和终生管理
我有4个班级:A,B,C,D。
A与B,C,d
注入C被注入d
A是每决心。
B是单身人士。
C和D我不知道。
我想A和C使用d的同一实例,因此每次我解决从容器时,应d一次创建并注入A和C.
最简单的方法是使A不需要使用Unity就可以将D传递给C。但有没有办法与Unity做到这一点?我只使用ContainerControlledLifetimeManager和PerResolveLifetimeManager,并没有使用子容器,我怀疑这可能会有用。我一直在玩这个,但结果很麻烦。它可以轻松完成吗?
没有像一个HTTP Session一个明显的例子,但我想我可以做一个。但是呢?我应该为PerRequestLifetimeManager分配哪些对象?如果我只将它分配给D,这似乎是显而易见的,但由于它是单身人士,B不会得到新的。我应该也改变B吗?在许多依赖关系很大的应用程序中,手动确定哪些类型应该是PerRequestLifetimeManager很难。请告诉我们更多关于它是如何工作的,这似乎是一个好主意,但我完全不理解它。 – Karsten 2011-01-21 08:08:00
我在想D会解决一个请求。你的场景并不表示B持有对D的引用。如果确实如此,那么B将只有一个D实例使你的场景无法解决(除非D也是单身)。您的情况可能过于复杂,无法在摘要中解决。如果您为A,B,C和D指定了一些基本功能,那么也许我可以摆脱一些更好的光线。 – 2011-01-21 18:57:24