渠道工厂类 - WCF

时间:2010-06-21 05:01:46

标签: .net wcf

我是否知道在WCF中使用channelfactory类。如果服务中有任何代码更改,是否有助于我们阻止手动更新服务引用?

1 个答案:

答案 0 :(得分:3)

这是构建客户端代理以调用服务的过程的一部分。

默认情况下,如果您执行“添加服务引用”,您只需获得一个(myService)Client类,您可以对其进行实例化和使用。

幕后工作包括两个步骤:

  • 为您的服务合约(ChannelFactory<T>)创建渠道工厂 - 这是一个能够创建合约特定渠道的类(您之间的通讯链接)客户端和正在调用的服务)

  • 然后使用该频道工厂实际创建频道,以建立链接。

创建频道工厂是一个相当昂贵的步骤 - 因此,如果您手动执行此操作,您可能希望尽可能长时间地缓存该频道工厂。

从渠道工厂创建实际渠道并不是一项繁重的任务。

因此,如果您确实可以访问您的服务合同(例如,通过共享合同),您可以将创建客户端代理的过程分解为两个步骤,并希望优化第一个(通过缓存渠道工厂)。

但是再一次:这要求您直接访问您的服务合同 - 通常只有在您控制通信的两端并且两端都是.NET的情况下才会这样。