WCF代理是什么?它们有什么用处?

10

我最近一直在自学WCF,并且使用WCF编写了一些生产服务,但直到最近我才真正了解了WCF。

我知道“代理”设计模式的概念,也知道在ASMX Web服务中使用代理。但我很难理解什么是WCF代理以及它是如何使用的。我已经仔细阅读了有关WCF的MSDN文档,但仍然没有完全掌握使用代理与WCF服务的大局。

4个回答

13

在维基百科上,还可以查看代理模式,其中之一的用途是:“为远程资源(例如Web服务或REST资源)提供接口。”此外,我认为重要的是要注意代理可以提供序列化和反序列化服务。(例如,对于XML和JSON消息有效载荷。) - DavidRR

6

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


2

从.NET客户端使用WCF服务需要使用客户端代理。

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

可以基于WCF服务公开的元数据在Visual Studio中自动生成代理,元数据可以是WSDL或基于SOAP的WS-MetaDataExchange终结点

如果您想更好地控制服务消费,则可以手动编写代理。例如,封装重复的用法模式,如设置凭据等。


2

从技术上讲,代理是CLR类,它公开了代表服务契约的单个CLR接口。代理提供与服务契约相同的操作,但还提供了用于管理代理生命周期和与服务的连接的附加方法。

                           or

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接