WCF / Silverlight:为什么使用ChannelFactory而不是客户端?

时间:2011-02-03 16:40:04

标签: silverlight wcf

继承了一个使用ChannelFactory而不是Client进行WCF调用的项目。你为什么这样做?

此外,缓存ChannelFactory.CreateChannel()调用的结果是否安全,或者每次都应创建一个新的?

1 个答案:

答案 0 :(得分:1)

创建WCF客户端分为两步:

  • 创建渠道工厂
  • 使用该频道工厂,创建实际频道

步骤1在处理能力和速度方面相当昂贵 - 因此,如果您可以创建通道工厂然后缓存在某处,您可以节省一些资源并创建一个通道,缓存通道工厂将更快而不是一直重建整个客户。

因此,在此设置中,我会尝试缓存ChannelFactory,如果可以的话 - 并在每次需要时从该工厂重新创建频道。