0

我有一些(在某種程度上)單身其中存在三個方面:溫莎註冊子容器能見度

  1. 每個AppDomain

  2. 每一個HttpApplication

  3. 每個Web請求

現在,我爲每個HttpApp創建一個子容器爲每個Web請求指定另一個孩​​子。這是必要的,因爲一些組件實際上應該在三個層中共享單例實例。出於安全和其他原因,有些註冊不應該實際共享單件(每個容器一個)。

有沒有人有關於如何實現這個的建議,或者我如何限制註冊在容器層次結構中的可見性?

謝謝。

回答

2

正如斯圖爾特所說,生活方式是這樣做的正確延伸點。子容器不是必需的。每個Web請求都是在Windsor中開箱即用的,IIRC Singleton生活方式(默認的)每個AppDomain都有效。每個HttpApplication生活方式在Castle.Windsor.Lifestyles contrib project中實施。

1

您是否嘗試過使用lifestyles來解決此問題? Singleton和PerWebRequest生活方式的組合可以滿足您的要求,而不需要兒童容器。