何时使用WCF ChannelFactory而不是服务引用

时间:2017-01-30 13:54:07

标签: wcf service-reference channelfactory

我正在阅读WCF教程并发现这些关键点指出我可以使用mex端点来允许隐式地向客户端添加服务引用。我想这允许VS在使用生成的WSDL文件时创建代理类?

然而,我试图让自己熟悉的代码库不使用隐式服务引用。相反,客户可以访问DuplexChannelFactory。 通过显式ChannelFactories与隐式服务引用进行服务通信有哪些好处?

这里提出的问题(How to re-write WCF client to use ChannelFactory instead of service reference)提到公司选择ChannelFactories而不是服务参考,但没有提到原因。

1 个答案:

答案 0 :(得分:5)

  

何时使用ChannelFactories而不是服务引用

除非没有其他选项,否则始终使用ChannelFactory。我不能强烈地说明这一点。服务参考是

  • 复杂,
  • 不可预测的,
  • 间接,
  • 经常do not work,尤其是在更新时。

您可能希望使用服务引用的唯一原因:

  1. 您没有代码中的服务定义和合同类型的二进制访问权限。例如,您通过互联网呼叫公共服务,服务的开发人员无法将这些服务提供给您。
  2. 就是这样。这是唯一的原因。
  3. 如果你有权访问服务定义和契约类型,可以说你应该使用服务引用,但是它们是在一些超级程序集中定义的,其中包含许多你没有用过的东西。但是,我发现这有问题,因为在这种情况下,您可以重新创建服务定义和类型,并利用WCF对合同等效性的尊重。