我有几个依赖注入服务依赖于HTTP上下文的东西.现在我正在将它们作为单个应用程序配置为Application_Start处理程序中的Windsor容器,这显然是这样的服务的
一个问题.
什么是最好的办法呢?我正在考虑使它们暂时性,然后在每个HTTP请求之后释放它们.但是,将HTTP上下文注入其中的最佳方式/位置是什么?控制器厂或其他地方?
使用Castle Windsor,您可以使用PerWebRequest生命周期 – 这应该符合您的要求.
这意味着您可以将HTTP注入到您的服务中,并且容器将负责适当的生命周期管理.然而,这要求您也将所有这些服务(以及所有这些服务的所有消费者等)注册为PerWebRequest(或Transient),因为如果您将它们注册为Singletons,那么它们将继续停留(可能处理的)上下文.