Unity.wcf和InstanceContextMode.Single

mer*_*adk 6 wcf unity-container

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

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

我在这里找到了这些信息:启用InstanceProvider单例服务.

vit*_*ore 7

我会引用Paul Hiles对您提出的同一问题发表评论:

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

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

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

您也可以找到文章这个MSDN系列有用.