我最近一直在教自己WCF,我甚至用WCF编写了一些生产服务。但直到最近,我才真正对WCF过分了解。
我知道“代理”设计模式的想法。我也知道在ASMX Web服务中使用代理。但我很难理解WCF代理是什么以及如何使用它。我已经仔细查看了有关WCF的MSDN文档,但我仍然没有理解使用代理与WCF服务的大局。
答案 0 :(得分:9)
代理是进程外服务的进程内代表。你可以调用代理(这很简单),它可以设置通信通道等,并与远程服务进行通信(很难)。
答案 1 :(得分:4)
WCF代理实际上只是一个抽象层次。您可以针对代理进行编码(最终是一个服务合同的接口),而无需使用处理WCF通信逻辑的细粒度细节。 WCF的好处是你可以使用与服务(http,wshttp,msmq,命名管道等)的许多类型的通信与相同的代理。
答案 2 :(得分:2)
从技术上讲,代理是CLR类,它暴露了代表的单个CLR接口 服务合同。代理提供与ServiceContract相同的操作,但也提供了管理代理生命周期和服务连接的其他方法
or
代理用于从客户端表示服务器中的ServiceContract接口。通过使用代理,我们可以调用位于服务器中的接口中的服务方法。
答案 3 :(得分:1)
客户端代理需要从.NET客户端使用WCF服务。 Proxy是客户端内存中的一个对象,它公开了与WCF服务相同的接口或API。您的消费代码将对该代理进行调用,代理将这些调用作为SOAP消息分发给WCF服务。
Visual Studio可以基于WCF服务在WSDL或WS-MetaDataExchange端点(基于SOAP)中公开的元数据来代码生成代理。
如果您想要更多地控制服务消费,那么您可以手动编写代理。就像你想要封装重复的用法模式,例如设置凭证等。