2016-06-11 105 views
0

連接到WCF服務的最佳方式是什麼?我的意思是什麼方法更好:創建WCF客戶端實例

  1. 創建DataServiceClient比如我想調用WCF API函數每一次,或
  2. 創建DataServiceClient情況下一次,當應用程序啓動和跨越整個應用程序傳播它。

第一種方法效率低於第二種方法嗎?

回答

1

它的議論,但

我想要調用WCF API函數每次創建DataServiceClient實例或

會給一個延遲實例。除非需要,否則不會創建代理對象。而

創建DataServiceClient實例一次,當應用程序啓動並且 在整個應用程序中傳播它。

會去渴望實例化。即使您不需要這樣做,您也不必要地創建代理對象。

最好的是,無論哪個班級/班級;您需要使用WCF服務方法;在類/ Form構造函數中創建代理對象並使用相同的實例。像

Public class Form1 : Form 
{ 
    private proxyobjecttype _client; 

public Form1() 
{ 
    _client = mywcfnamespace.Proxyobject(); 
} 

private void someconsumermethod() 
{ 
    _client.callWCFmethod1(); 
} 
} 
0

它取決於您打算髮送查詢的頻率,以及您使用的協議。

如果它每長時間間隔只是一個請求,那麼值得關閉客戶端以節省系統資源。

如果您打算執行一系列查詢,最好保留客戶端直到系列結束。

最後,如果客戶端的創建成本很高(例如網絡中的連接超時),您可以實施一個客戶端池。