2009-11-02 32 views
0

對於每個類我創建一個新的Web服務代理實例。C#Web服務代理類的多個實例,還是應該將它們作爲ref傳遞?

主要形式:

services services = new services(); 
services.doStuff(); 

新形式/窗口從主要形式有:

services services = new services(); 
services.doStuff(); 

我應該從主界面通過初審?或者它甚至不重要...

frmWindow window = new frmWindow(services); 
+0

不,沒關係。順便說一下,如果'services'實現'IDisposable',最好把整個事情放入'using'語句中。 – 2009-11-02 21:10:54

+0

這可能很重要,我們不知道「服務」班正在做什麼。 – 2009-11-02 21:11:53

+0

......但最有可能的不是。 – 2009-11-02 21:12:36

回答

1

服務代理對象對於asmx和WCF都很便宜(您沒有指定使用哪一個) - 只需在需要時將它們創建並丟棄即可。最昂貴的部分是建立到目標服務器的網絡連接,目標服務器通常是經過彙集和緩存的。不要爲自己緩存和傳遞代理而自殺,這是微不足道的複雜性。

+0

我正在使用ASMX。我想聽到他們被彙集和緩存,所以這有助於。這裏的答案引導我朝着實施故障轉移的方向前進。那謝謝啦。 – Shawn 2009-11-03 14:07:28

0

這完全取決於你的班級的設計。有多個「服務」對象是否有意義?

此外,您的'服務'類的對象是創建和維護昂貴嗎?我想我們需要更多的信息來給你一個有用的答案。

1

這取決於你。

如果我需要該web代理或任何只有一個實例,需要提供一個全局作爲實例的接入點作爲singleton對象。

+0

單身聽起來不錯,看着它。 – Shawn 2009-11-02 21:19:58

相關問題