我正在使用 Unity.WCF 为 WCF 服务注入依赖项。当我将服务设置为InstanceContextMode.Single
.
我在 Google 上发现 whenInstanceContextMode
设置为Single
,InstanceProvider
没有被调用。还有一个解决方法,但我想知道 Unity.WCF 中是否有对此的内置支持,因为显然这是一个众所周知的问题。
我在这里找到了信息:启用InstanceProvider
单例服务。
我正在使用 Unity.WCF 为 WCF 服务注入依赖项。当我将服务设置为InstanceContextMode.Single
.
我在 Google 上发现 whenInstanceContextMode
设置为Single
,InstanceProvider
没有被调用。还有一个解决方法,但我想知道 Unity.WCF 中是否有对此的内置支持,因为显然这是一个众所周知的问题。
我在这里找到了信息:启用InstanceProvider
单例服务。
我将引用Paul Hiles对您提出的同一问题的评论:
使用
InstanceContextMode.Single
会使您的服务扩展非常糟糕,因此在大多数情况下最好避免使用,特别是如果它仅用于允许 AppFabric 自动启动。您可以安全地删除该ServiceBehavior
属性并以另一种方式进行。使用 Unity.WCF,您可以将初始化代码添加到添加 Unity.WCF NuGet 包时创建
ConfigureContainer
的类的方法中。WcfServiceFactory
这只会在服务的生命周期内执行一次。顺便说一句,您不应该将 Unity 容器传递到您的服务中。将您的服务使用的任何组件添加到构造函数中(例如存储库、助手等),然后使用该
ConfigureContainer
方法向 Unity 注册。当您的服务被实例化时,依赖项将被自动注入。
您可能还会发现此 MSDN 系列中的文章很有用。