2010-03-19 80 views

回答

19

如果您使用過Visual Studio的Add Service Referencesvcutil.exe工具,您可能永遠不會看到ChannelFactory。

上講,創建一個WCF服務的客戶端代理是一個過程分爲兩個步驟:

  • 爲您的具體合同服務
  • 適當ChannelFactory<T>因爲通道工廠,創建實際的通信客戶端和服務之間的通道

如果您確實可以控制電線的兩端,並且您可以將服務和數據合約放入單獨的部件中,則可以拆分這兩步ocess和手動處理:

  • 創建ChannelFactory<IMyService>一次,這是一個相當複雜和耗時的操作,所以,如果有可能,儘量只有這時候真正需要做的,然後緩存通道工廠後來重用

  • 使用通道工廠創建實際的通道時,你需要與服務器

這對WCF服務的一個非常具體的結構進行交流,所以我不認爲你會永遠使用它在外面WCF範圍。

5

ChannelFactory類用於在不需要代理的情況下構建客戶端和服務之間的通道。在某些情況下,您可能擁有與客戶端應用程序緊密綁定的服務。在這種情況下,您可以直接引用Interface DLL並使用ChannelFactory使用它來調用您的方法。

我建議你也通過Proxy和Channel工廠的區別。這將有助於您理解Channel Factory的確切使用。以下鏈接可能對您有所幫助http://ashishkhandelwal.arkutil.com/wcf/channelfactory-over-proxy-class-in-wcf/

+0

我試過這個鏈接,它除了廣告之外什麼都沒有。 – CodeChops 2017-10-10 19:18:41