什么是.NET中的渠道工厂?

时间:2010-03-19 17:24:08

标签: c# wcf remoting

什么是渠道工厂?为什么要使用它?

2 个答案:

答案 0 :(得分:21)

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

基本上,为WCF服务创建客户端代理的过程分为两步:

  • 为您的特定服务合约创建适当的ChannelFactory<T>
  • 给定通道工厂,创建客户端和服务之间的实际通信通道

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

  • 创建ChannelFactory<IMyService>一次,这是一个相当复杂和耗时的操作,所以如果可能的话,只在真正需要的时候尝试这样做,然后缓存通道工厂以便以后重用< / p>

  • 每当您需要与服务器通信时,使用频道工厂创建实际频道

这是WCF服务的一个非常具体的构造,所以我认为你不会在WCF范围之外使用它。

答案 1 :(得分:5)

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

我建议您通过Proxy和Channel工厂之间的区别。这将有助于您了解Channel Factory的确切用法。