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

发布于 2024-08-25 15:09:47 字数 23 浏览 3 评论 0原文

什么是渠道工厂以及为什么使用它?

What is a Channel Factory and why do you use it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冰火雁神 2024-09-01 15:09:47

如果您使用 Visual Studio 的添加服务引用svcutil.exe 工具,您可能永远不会看到 ChannelFactory。

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

  • 根据给定的通道工厂为您的特定服务协定创建适当的 ChannelFactory
  • ,在通道工厂之间创建实际的通信通道。客户端和服务

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

  • 创建 ChannelFactory 一次,这是一个相当复杂且耗时的操作,因此,如果可能的话,尝试仅在真正必要时才执行此操作,然后缓存通道工厂以供以后重用

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

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

If you used Visual Studio's Add Service Reference, or the svcutil.exe tool, you probably won't ever see a ChannelFactory.

Basically, creating the client-side proxy for a WCF service is a two-step process:

  • create the appropriate ChannelFactory<T> for your specific service contract
  • given that channel factory, create the actual communication channel between the client and the service

If you do have control over both ends of the wire, and you can put your service and data contracts into a separate assembly, you can break apart this two step process and handle it manually:

  • create the ChannelFactory<IMyService> once, this is a fairly complex and time-consuming operation, so if ever possible, try to do this only when really necessary, and then cache the channel factory for later reuse

  • create the actual channel using the channel factory whenever you need to communicate with the server

It's a very specific construct for WCF services, so I don't think you'll ever use it outside the WCF scope.

度的依靠╰つ 2024-09-01 15:09:47

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

我建议您还了解代理和通道工厂之间的区别。这将帮助您了解 Channel Factory 的准确使用。

ChannelFactory class is used to construct a channel between the client and the service without the need of a proxy. In some cases, you may have a service that is tightly bound to the client application. In such a case, you can reference the Interface DLL directly and use ChannelFactory to call your methods using that.

I suggest you also go thru the difference between Proxy and Channel factory. this will help you in understanding of exact use of Channel Factory.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文