10

我最近一直在自学有关 WCF 的知识,甚至使用 WCF 编写了一些生产服务。但直到最近,我才真正对 WCF 进行过深入研究。

我知道“代理”设计模式的想法。我也知道在 ASMX Web 服务中使用代理。但是我很难理解 WCF 代理是什么以及它是如何使用的。我已经彻底查看了有关 WCF 的 MSDN 文档,但我仍然没有掌握将代理与 WCF 服务一起使用的总体情况。

4

4 回答 4

13

代理是进程外服务的进程内代表。您调用代理(这很容易),它设置通信通道等并与远程服务对话(这很困难)。

另请参阅http://msdn.microsoft.com/en-us/library/ms730144.aspx

于 2011-06-09T07:04:07.730 回答
6

WCF 代理实际上只是一个抽象级别。您针对代理(最终是一个服务合同的接口)进行编码,而无需处理处理 WCF 通信逻辑的细粒度细节。WCF 的好处是您可以使用同一个代理与服务(http、wshttp、msmq、命名管道等)进行多种类型的通信。

于 2011-06-08T23:42:25.190 回答
2

从技术上讲 Proxy 是 CLR 类,它公开表示服务合同的单个 CLR 接口。代理提供与 ServiceContract 相同的操作,但还提供用于管理代理生命周期和与服务的连接的其他方法

                           or

代理用于从客户端表示服务器中的ServiceContract接口。通过使用代理,我们可以调用存在于服务器中的接口中的服务方法。

于 2013-10-02T12:26:28.897 回答
2

需要客户端代理才能使用来自 .NET 客户端的 WCF 服务。代理是客户端内存中的一个对象,它公开与 WCF 服务相同的接口或 API。您的消费代码将针对该代理进行调用,并且代理会将这些调用作为 SOAP 消息分派给 WCF 服务。

代理可以由 Visual Studio 基于 WCF 服务在 WSDL 或 WS-MetaDataExchange 端点(基于 SOAP)中公开的元数据生成代码。

如果您想更好地控制服务消耗,那么您可以手动编写代理代码。就像您想封装重复的使用模式,例如设置凭据等。

于 2017-02-26T14:44:50.983 回答