【问题标题】:NHibernate with StructureMap for a Non-Web ApplicationNHibernate 与 StructureMap 用于非 Web 应用程序
【发布时间】:2010-05-18 07:46:58
【问题描述】:

对于像 Windows 服务这样的非 Web 应用程序,使用 StructureMap 为 NHibernate 注入和管理会话/事务的最佳实践是什么?

在 Web 上下文中,我们使用结构映射的混合生命周期来使用 PerRequest 会话管理生命周期,但对于 Windows 服务,我无法处理 IDisposable UnitOfWork ...

谢谢。

【问题讨论】:

  • 您的 Windows 服务如何工作?它是否在计时器事件中轮询和运行代码?您是否创建了一个新线程来处理工作?
  • Windows 服务托管一些 WCF 服务,并处理一些定时后台任务

标签: .net nhibernate structuremap


【解决方案1】:

Ayende 很好地总结了如何在桌面应用程序中处理 NHibernate here

使用 StructureMap,我首先手动创建 ISessionFactory。然后声明要在所有 ISessionFactory 实例上使用的实例:

        For<ISessionFactory>().Use(sessionFactory);

因此,您让 Screens 自己来创建和处理它们的会话。重要的是所有会话彼此隔离以避免内存问题。这在文章中有完整的解释。

通过这种方法,并根据需要充分利用 IStatelessSession,我减少了在 WPF/StructureMap/NHibernate 应用程序中遇到的许多问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    相关资源
    最近更新 更多