【问题标题】:WCF, Ninject, and life cycleWCF、Ninject 和生命周期
【发布时间】:2010-12-23 15:55:18
【问题描述】:

我将 Ninject 添加到我的 WCF 服务(托管在 IIS 中)。我打算让 WCF 服务自动实例化我的 NHibernate 存储库类的实例。

我最初使用 Castle(以及后来的 Ninject)在我的 ASP.NET MVC 客户端中实例化这些对象并将它们传递给服务类。在这种情况下,范围是 PerWebRequest (Castle) 或 InRequestScope (Ninject)。 NHibernate 会话将与在存储库被释放时提交的事务一起隐式创建。

我希望通过让客户端通过新建/关闭服务来隐式控制会话/事务的生命周期来保持相同的方法。

现有的 Ninject 范围方法之一会以这种方式工作吗(可能是 InThreadScope 或 InRequestScope)?有没有其他方法可以实现这个目标?

【问题讨论】:

    标签: wcf nhibernate dependency-injection ninject


    【解决方案1】:

    我会让客户端明确控制这些对象的生命周期。不要注入这样的对象,而是注入可以为您创建这样的对象的工厂。这遵循principle of least surprise。请参阅this SO answer 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-12
      • 1970-01-01
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      相关资源
      最近更新 更多