2010-12-23 111 views
1

我加入Ninject到我的WCF服务(托管在IIS)。我打算让WCF服务自动实例化我的NHibernate存储库类的实例。WCF,Ninject和生命周期

我最初使用城堡(后来Ninject)来实例化这些对象在我的ASP.NET MVC客户端,并将其传递给服务类。在这种情况下,范围为PerWebRequest(城堡)或InRequestScope(Ninject)。 NHibernate会话将会隐式创建,并且会在处置存储库时提交一个事务。

我想通过让客户通过隐newing /控制会话/交易的生命周期结束服务,以保持同样的方法。现有Ninject范围方法

将一个以这种方式(InThreadScope或InRequestScope也许)工作?有没有另一种方法来实现这一目标?

回答

0

,我会让客户明确控制这些类型的对象的生命周期。不要注入这样一个对象,而是注入一个可以为你创建这样一个对象的工厂。这跟在principle of least surprise之后。有关更多信息,请参阅this SO answer