2011-06-08 69 views
7

我最近一直在教育自己關於WCF,我甚至使用WCF編寫了一些生產服務。但直到最近,我從來沒有真正看過WCF。什麼是WCF代理,它們有什麼用途?

我意識到「代理」設計模式的想法。我也知道在ASMX Web服務中使用代理服務器。但是我很難理解WCF代理是什麼以及如何使用它。我仔細查看了有關WCF的MSDN文檔,但我仍然沒有把握WCF服務中使用代理的大概情況。

回答

7

代理是進程外服務的代表。您可以撥打代理(這很簡單),它可以設置通信渠道等,並與遠程服務進行通話(很難)。請參閱http://msdn.microsoft.com/en-us/library/ms730144.aspx

+0

在維基百科上,還可以參見[代理模式](https://en.wikipedia.org/wiki/Proxy_pattern#Usage),它聲明瞭這一點它的一個用途:*「提供遠程資源的接口,例如Web服務或REST資源。」*另外,我認爲重要的是要注意代理可以提供序列化和反序列化服務。 (例如,對於XML和JSON消息負載。) – DavidRR 2015-11-11 14:13:25

3

WCF代理實際上只是一個抽象層次。您可以針對代理(最終是一個服務合同的接口)進行編碼,而無需處理處理WCF通信邏輯的細節問題。 WCF的好處是你可以在同一個代理上使用多種類型的服務通信(http,wshttp,msmq,命名管道等)。

1

技術上講Proxy是CLR類暴露單CLR接口,它表示 服務Contract.The代理提供相同的操作的ServiceContract,而且還用於管理所述代理的生命週期和到服務

      or 
連接的其他方法

代理服務器用於從客戶端代表服務器端的ServiceContract接口。通過使用代理服務器,我們可以調用存在於服務器端的接口中的服務方法。

0

客戶端代理需要從.NET客戶端使用WCF服務。 代理服務器是客戶端內存中的一個對象,它暴露與WCF服務相同的接口或API。您的消費代碼將針對該代理進行調用,並且代理將這些調用作爲SOAP消息分派給WCF服務。

代理可以由Visual Studio根據WCF服務公開的元數據在WSDL或WS-MetaDataExchange端點(基於SOAP)中進行代碼生成。

如果您想要更多地控制服務消耗,那麼您可以手動編碼代理。就像你想封裝的重複使用模式,例如設置憑據等。

相關問題