.net - channel 工厂类-WCF

标签 .net wcf

请问WCF中channelfactory类的使用吗?如果服务中有任何代码更改,它是否有助于我们防止手动更新服务引用?

最佳答案

这是构建客户端代理来调用您的服务的过程的一部分。

默认情况下,如果您执行“添加服务引用”,您只会获得 (myService)Client您可以实例化和使用的类。

这在幕后执行的是一个两步过程:

  • 为您的服务契约(Contract) ( ChannelFactory<T> ) 创建一个 channel 工厂 - 该类能够创建特定于契约(Contract)的 channel (您的客户与客户之间的通信链接)被调用的服务)

  • 然后使用该 channel 工厂实际创建一个 channel ,以建立链接。

创建 channel 工厂是一个相当昂贵的步骤 - 因此,如果您手动执行此操作,您会希望尝试尽可能长时间地缓存该 channel 工厂。

从 channel 工厂创建实际 channel 并不是一项艰巨的任务。

因此,如果您确实有权访问您的服务契约(Contract)(例如,通过共享契约(Contract)组件),您可以将创建客户端代理的过程分为两个步骤,并希望优化第一个步骤(通过缓存 channel 工厂)。

但是,这需要您直接访问您的服务契约(Contract) - 通常只有当您控制通信的两端并且两端都是 .NET 时才会出现这种情况。

关于.net - channel 工厂类-WCF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3082214/

相关文章:

来自 WCF 服务的带有 SSL 的 MySQL Connector/Net 失败

visual-studio - SharePoint 2010 - 自定义服务应用程序、全局部署、服务仅在单个服务器上运行?

c# - 使用 Google .NET API 复制 Google Docs 电子表格

c# - 如何调试 WCF 程序

c# - 使用 WCF 服务开发 iOS 应用程序

wcf - SOA 和 WCF 设计问题 : Is this an unusual system design?

c# - 如何使用 Autofac 将 WCF 服务实现注入(inject)到另一个 WCF 服务中

c# - 无法加载类型 'Microsoft.ApplicationInsights.Telemetry.Web.ApplicationInsightsModule'

c# - 如何在运行时检查动态数据类型的类型?

C# 项目更新从两个表中选择的行的 MySQL 列表