【发布时间】:2009-08-20 01:27:33
【问题描述】:
为 ASP.NET 应用程序创建依赖注入容器是很常见的,这样它就在应用程序存在时存在。
我在每个请求中创建 DI 容器,并在请求结束时释放它。
主要目的是当容器被释放时,任何 DI 容器都支持 Disposing 对象。
附加:如果我需要在请求之间共享资源(NHibernate SessionFactory),我只需将它们保存在静态变量中,并将该值封装在每个请求的对象中。像这样:
public class SessionFactoryAggregator : ISessionFactory {
static ISessionFactory actualFactory;
// Implement ISessionFactory and proxy calls to the actualFactory
}
这只是模拟的单例模式。
我的问题:
- 可以这样做吗?
- 如果不是,为什么以及应该怎么做?
- 此方法中是否存在任何已知的性能问题?
更新:目前我通过自己对 DI 提供者的抽象来使用 Castle Windsor,因此实际的容器是可插拔的。
谢谢。
【问题讨论】:
标签: c# .net asp.net design-patterns dependency-injection