2010-03-19 78 views

回答

19

如果您使用过Visual Studio的Add Service Referencesvcutil.exe工具,您可能永远不会看到ChannelFactory。

上讲,创建一个WCF服务的客户端代理是一个过程分为两个步骤:

  • 为您的具体合同服务
  • 适当ChannelFactory<T>因为通道工厂,创建实际的通信客户端和服务之间的通道

如果您确实可以控制电线的两端,并且您可以将服务和数据合约放入单独的部件中,则可以拆分这两步ocess和手动处理:

  • 创建ChannelFactory<IMyService>一次,这是一个相当复杂和耗时的操作,所以,如果有可能,尽量只有这时候真正需要做的,然后缓存通道工厂后来重用

  • 使用通道工厂创建实际的通道时,你需要与服务器

这对WCF服务的一个非常具体的结构进行交流,所以我不认为你会永远使用它在外面WCF范围。

5

ChannelFactory类用于在不需要代理的情况下构建客户端和服务之间的通道。在某些情况下,您可能拥有与客户端应用程序紧密绑定的服务。在这种情况下,您可以直接引用Interface DLL并使用ChannelFactory使用它来调用您的方法。

我建议你也通过Proxy和Channel工厂的区别。这将有助于您理解Channel Factory的确切使用。以下链接可能对您有所帮助http://ashishkhandelwal.arkutil.com/wcf/channelfactory-over-proxy-class-in-wcf/

+0

我试过这个链接,它除了广告之外什么都没有。 – CodeChops 2017-10-10 19:18:41