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

Nev*_*hai 18 c# wcf remoting

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

mar*_*c_s 21

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

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

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

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

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

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

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


小智 5

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

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