我需要使用Castle
和Nhibernate
将长时间运行的任务的辅助角色添加到当前的Web项目中。
目前,我的许多服务都安装在DomainModel
PerWebRequest
。我需要在Worker
中使用其中一些不能使用PerWebRequest
的内容,因此我需要它们为Transient
。
放置安装人员的最佳位置在哪里?
我是否应该在DomainModel
或Web
和Worker
注册相应LifeStyle
的服务?
例如,NHibernate是针对Web的PerWebRequest,而不是针对Worker的。由于DomainModel中的许多服务都依赖于ISession,因此要求Web或Worker程序集“为”DomainModel注册它似乎是不对的。
我的解决方案分为三个项目:
DomainModel
- DAO, shared services etc.
Web
- Models and presentation
Worker (new)
- Long running background tasks
答案 0 :(得分:0)
我希望没有“容器感知”的组件/层。我的选择始终是入口点项目(mvc,windows窗体,wpf,windows服务......)