2
在繼承的項目中,使用ChannelFactory而不是客戶端進行WCF調用。爲什麼要這麼做?WCF/Silverlight:爲什麼要使用ChannelFactory而不是客戶端?
另外,是否可以緩存ChannelFactory.CreateChannel()調用的結果,還是應該每次都創建一個新的?
在繼承的項目中,使用ChannelFactory而不是客戶端進行WCF調用。爲什麼要這麼做?WCF/Silverlight:爲什麼要使用ChannelFactory而不是客戶端?
另外,是否可以緩存ChannelFactory.CreateChannel()調用的結果,還是應該每次都創建一個新的?
創建WCF客戶端是一個兩步驟的過程:
步驟1是在術語相當昂貴的處理能力和速度 - 因此,如果您可以創建通道工廠並將緩存存儲在某處,那麼您可以節省自己的一點資源,並創建一個通道,以便緩存通道工廠的速度比始終重新創建整個客戶端的速度更快。
所以在這個設置中,我會嘗試緩存ChannelFactory
,如果可以的話 - 每次需要時重新從該工廠創建通道。
但是,他們爲什麼要緩存通道本身?這樣做有沒有危險? – 2011-02-03 16:55:13