.net WCF代理是什么?它们有什么好处?

.net WCF代理是什么?它们有什么好处?,.net,web-services,wcf,proxy,webservices-client,.net,Web Services,Wcf,Proxy,Webservices Client,我最近一直在学习WCF,甚至用WCF编写了一些生产服务。但直到最近,我才真正对WCF做了太多的研究 我知道“代理”设计模式的想法。我还知道在ASMX web服务中使用代理。但我很难理解什么是WCF代理以及如何使用它。我已经仔细阅读了有关WCF的MSDN文档,但我仍然没有掌握代理与WCF服务结合使用的大图。WCF代理实际上只是一个抽象层次。您可以针对代理(最终是一个作为服务契约的接口)编写代码,而无需处理WCF通信逻辑的细节。WCF的好处是,您可以使用同一个代理与服务(http、wshttp、ms

我最近一直在学习WCF,甚至用WCF编写了一些生产服务。但直到最近,我才真正对WCF做了太多的研究


我知道“代理”设计模式的想法。我还知道在ASMX web服务中使用代理。但我很难理解什么是WCF代理以及如何使用它。我已经仔细阅读了有关WCF的MSDN文档,但我仍然没有掌握代理与WCF服务结合使用的大图。

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

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


另请参见。

从技术上讲,代理是CLR类,它公开表示 服务契约。代理提供与ServiceContract相同的操作,但也提供其他方法来管理代理生命周期和与服务的连接

                           or

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

需要客户端代理来使用.NET客户端的WCF服务。 代理是客户端内存中的一个对象,它公开与WCF服务相同的接口或API。您的消费代码将对该代理进行调用,代理将这些调用作为SOAP消息发送到WCF服务

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

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

在Wikipedia上,另请参见,其中说明了它的一个用途:“为远程资源(如web服务或REST资源)提供接口。”,我认为需要注意的是,代理可以提供序列化和反序列化服务。(例如,对于XML和JSON消息有效负载。)