【发布时间】:2012-02-13 14:25:40
【问题描述】:
我正在寻找一些关于如何最好地配置这种情况的建议。我在 ASP MVC 应用程序中有以下组件。
- 控制器 - 按 MVC 要求瞬态
- 服务 - 控制器调用这些以进入业务层
- 验证器 - 服务使用这些验证组件。这些创建起来很昂贵,所以我需要它们是单例的
- 存储库 - 服务和验证器使用这些来访问数据
- ISession - NHibernate Session 配置为 PerWebRequest
我正在研究如何最好地配置服务和存储库。从表面上看,它们似乎都可以配置相同。存储库唯一的依赖项(在构造函数中传递)是 ISession。仅服务依赖项(在构造函数中传递)是存储库。当服务需要验证器时,它会从 ServiceLocator 获取它。验证器在构造函数中获取存储库。我认为因为 Validator 是 Singleton 传递 Transient Repositories 是有问题的,因为 Validator 将持有一个具有已处置 ISession 的 Repository。
我们将不胜感激。
【问题讨论】:
标签: inversion-of-control castle-windsor