Unity.wcf和InstanceContextMode.Single

时间:2013-03-16 18:52:03

标签: wcf unity-container

我正在使用Unity.WCF为WCF服务注入依赖项。将服务设置为InstanceContextMode.Single时出现问题。

我在Google上发现当InstanceContextMode设置为Single时,InstanceProvider未被调用。还有一个解决方法,但我想知道在Unity.WCF中是否有一些内置的支持,因为这显然是一个众所周知的问题。

我在此处找到了相关信息:Enabling InstanceProvider for singleton services

1 个答案:

答案 0 :(得分:7)

我会引用Paul Hiles comment您提出的同一问题:

  

使用InstanceContextMode.Single会使您的服务规模非常糟糕,因此在大多数情况下最好避免使用,特别是如果它只是用于允许AppFabric自动启动。您可以安全地删除ServiceBehavior属性并以其他方式执行。

     

使用Unity.WCF,您可以将初始化代码添加到添加Unity.WCF NuGet包时创建的ConfigureContainer类的WcfServiceFactory方法中。这只会在服务的生命周期内执行一次。

     顺便说一下,你不应该将Unity容器传递给你的服务。将您的服务使用的任何组件添加到构造函数中(例如存储库,帮助程序等),然后使用ConfigureContainer方法向Unity注册。实例化服务后,将自动注入依赖项。

您还可以从article找到this MSDN series