2012-11-27 66 views
1

處理源自多次調用的WebService方法的-Completed事件以及多次訂閱-Completed事件的最佳做法是什麼?在Silverlight中處理WebServices的GetSomethingById類方法的最佳實踐

This answer建議識別來自事件參數的結果(在本例中使用e.Type,但也可以使用e.Result.Id或任何可以幫助識別需要的參數)。

This answer另一方面顯示每個呼叫的客戶端初始化。

最好做什麼?

  • 確定其內容/附加信息的結果;
  • 使用多個客戶端,每個事件服務器一個;
  • 還有別的嗎?

問題是.NET 4.0及更新版本,但如果你有一個「最佳實踐」,從早期版本起作用,仍然可行,隨時隨地都可以告訴。

回答

0

我以前使用過的一種方法是鏈接Web服務調用。所以,當第一個調用完成後,我從註冊完成的事件中註銷,然後註冊到另一個或使用不同的回調方法,等等......我知道這不是完美的方法,但延遲很小,不會說缺少,它並不像管理許多代理實例那麼複雜。如果您需要並行執行呼叫,我們確實考慮過擁有多個客戶端,這可能是一種可行的方式!

0

根據你想要做什麼,你可能想要創建一個類來表示每個涉及Web服務的邏輯任務。爲邏輯任務的每個實例創建該類的一個實例,並給出該類事件。

每個事件的sender參數將是包裝類的實例。然後,您可以讓一段代碼處理每個這樣的邏輯線程的事件,而「邏輯線程」將包含所有必需的狀態。

+0

你的意思是使用所有引用同一個服務實例的包裝器的多個實例嗎?這些實例將如何確定什麼是「他們的」答案? – Eregrith

+0

你說得對。這是行不通的。您使用的是哪個版本的.NET? –

+0

這個問題不是針對特定版本的.NET,但是因爲它確實可以在Web服務上產生差異,所以我會編輯我的問題以表明這一點。 – Eregrith