【问题标题】:What is a Channel Factory in .NET?.NET 中的通道工厂是什么?
【发布时间】:2011-01-29 13:45:21
【问题描述】:

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

【问题讨论】:

  • 与什么组件/代码有关?

标签: c# wcf remoting


【解决方案1】:

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

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

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

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

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

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

它是 WCF 服务的一个非常特殊的构造,所以我认为您永远不会在 WCF 范围之外使用它。

【讨论】:

    【解决方案2】:

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

    我建议您也了解一下 Proxy 和 Channel factory 之间的区别。这将帮助您了解 Channel Factory 的确切用法。

    【讨论】:

      猜你喜欢
      • 2016-06-16
      • 2018-08-13
      • 1970-01-01
      • 2013-05-11
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      相关资源
      最近更新 更多