.NET 中的通道工厂是啥?

Posted

技术标签:

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

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

【问题讨论】:

与什么组件/代码有关? 【参考方案1】:

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

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

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

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

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

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于.NET 中的通道工厂是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 Rust 中耗尽 mspc 通道的最佳方法是啥?

在先通道和最后通道之间更改图像通道顺序的正确方法是啥?

使用通道工厂而不是使用代理或添加服务引用来使用外部 WCF 服务

WCF - 通道工厂与客户群

tradingview进入通道是啥意思

WIF(使用 Thinktecture Identity Server)和双工 WCF 通道