我正在使用Unity.WCF为WCF服务注入依赖项。将服务设置为InstanceContextMode.Single
时出现问题。
我在Google上发现当InstanceContextMode
设置为Single
时,InstanceProvider
未被调用。还有一个解决方法,但我想知道在Unity.WCF中是否有一些内置的支持,因为这显然是一个众所周知的问题。
我在此处找到了相关信息:Enabling InstanceProvider
for singleton services。
答案 0 :(得分:7)
我会引用Paul Hiles comment您提出的同一问题:
使用
InstanceContextMode.Single
会使您的服务规模非常糟糕,因此在大多数情况下最好避免使用,特别是如果它只是用于允许AppFabric自动启动。您可以安全地删除ServiceBehavior
属性并以其他方式执行。使用Unity.WCF,您可以将初始化代码添加到添加Unity.WCF NuGet包时创建的
顺便说一下,你不应该将Unity容器传递给你的服务。将您的服务使用的任何组件添加到构造函数中(例如存储库,帮助程序等),然后使用ConfigureContainer
类的WcfServiceFactory
方法中。这只会在服务的生命周期内执行一次。ConfigureContainer
方法向Unity注册。实例化服务后,将自动注入依赖项。
您还可以从article找到this MSDN series。