什么是渠道工厂?为什么要使用它?
答案 0 :(得分:21)
如果您使用Visual Studio的Add Service Reference
或svcutil.exe
工具,您可能永远不会看到ChannelFactory。
基本上,为WCF服务创建客户端代理的过程分为两步:
ChannelFactory<T>
如果您确实可以控制电线的两端,并且可以将服务和数据合同放入单独的程序集中,则可以拆分这两步过程并手动处理:
创建ChannelFactory<IMyService>
一次,这是一个相当复杂和耗时的操作,所以如果可能的话,只在真正需要的时候尝试这样做,然后缓存通道工厂以便以后重用< / p>
每当您需要与服务器通信时,使用频道工厂创建实际频道
这是WCF服务的一个非常具体的构造,所以我认为你不会在WCF范围之外使用它。
答案 1 :(得分:5)
ChannelFactory类用于在客户端和服务之间构建通道,而无需代理。在某些情况下,您可能拥有与客户端应用程序紧密绑定的服务。在这种情况下,您可以直接引用接口DLL并使用ChannelFactory使用它来调用您的方法。
我建议您通过Proxy和Channel工厂之间的区别。这将有助于您了解Channel Factory的确切用法。