【发布时间】:2011-01-29 13:45:21
【问题描述】:
什么是通道工厂,为什么要使用它?
【问题讨论】:
-
与什么组件/代码有关?
什么是通道工厂,为什么要使用它?
【问题讨论】:
如果您使用 Visual Studio 的 Add Service Reference 或 svcutil.exe 工具,您可能永远不会看到 ChannelFactory。
基本上,为 WCF 服务创建客户端代理是一个两步过程:
ChannelFactory<T>
如果您确实可以控制线路的两端,并且可以将服务和数据合同放入单独的程序集中,则可以将这两个步骤分开并手动处理:
创建一次ChannelFactory<IMyService>,这是一个相当复杂且耗时的操作,因此如果可能,请仅在真正需要时尝试这样做,然后缓存通道工厂以供以后重用
在需要与服务器通信时使用通道工厂创建实际通道
它是 WCF 服务的一个非常特殊的构造,所以我认为您永远不会在 WCF 范围之外使用它。
【讨论】:
ChannelFactory 类用于在客户端和服务之间构建通道,无需代理。在某些情况下,您可能拥有与客户端应用程序紧密绑定的服务。在这种情况下,您可以直接引用接口 DLL 并使用 ChannelFactory 来调用您的方法。
我建议您也了解一下 Proxy 和 Channel factory 之间的区别。这将帮助您了解 Channel Factory 的确切用法。
【讨论】: