.NET 中的通道工厂是啥?
Posted
技术标签:
【中文标题】.NET 中的通道工厂是啥?【英文标题】:What is a Channel Factory in .NET?.NET 中的通道工厂是什么? 【发布时间】:2011-01-29 13:45:21 【问题描述】:什么是通道工厂,为什么要使用它?
【问题讨论】:
与什么组件/代码有关? 【参考方案1】:如果您使用 Visual Studio 的 Add Service Reference
或 svcutil.exe
工具,您可能永远不会看到 ChannelFactory。
基本上,为 WCF 服务创建客户端代理是一个两步过程:
为您的特定服务合同创建适当的ChannelFactory<T>
给定通道工厂,创建客户端和服务之间的实际通信通道
如果您确实可以控制线路的两端,并且可以将服务和数据合同放入单独的程序集中,则可以将这两个步骤分开并手动处理:
创建一次ChannelFactory<IMyService>
,这是一个相当复杂且耗时的操作,因此如果可能,请仅在真正需要时尝试这样做,然后缓存通道工厂以供以后重用
在需要与服务器通信时使用通道工厂创建实际通道
它是 WCF 服务的一个非常特殊的构造,所以我认为您永远不会在 WCF 范围之外使用它。
【讨论】:
【参考方案2】:ChannelFactory 类用于在客户端和服务之间构建通道,无需代理。在某些情况下,您可能拥有与客户端应用程序紧密绑定的服务。在这种情况下,您可以直接引用接口 DLL 并使用 ChannelFactory 来调用您的方法。
我建议您也了解一下 Proxy 和 Channel factory 之间的区别。这将帮助您了解 Channel Factory 的确切用法。
【讨论】:
以上是关于.NET 中的通道工厂是啥?的主要内容,如果未能解决你的问题,请参考以下文章