2013-08-16 16 views
0

我有兩個具有相同WCF服務(比方說,WS1和WS2)的獨立服務器和一個需要訪問這兩個服務的C#Mobile CF 2.0項目。如何選擇一個WCF服務來連接?

我可以在C#CF2.0項目上做這樣的事嗎?

(...) 

if (someCondition == true) 
{ 
    WS1 aux = new WS1(); 
} 
else 
{ 
    WS2 aux = new WS2(); 
} 

aux.service(parameter1); 

(...) 

請注意,我希望具有相同的變量名,而不管我將訪問哪個服務器。問題是:我不知道如何在條件語句之外聲明它,當我只是在條件語句中聲明它們時,它們被聲明爲局部變量,並且我不知道如何使變量成爲公共或全局變量。

有什麼想法或幫助嗎?

回答

1

由於WCF服務是完全一樣的,只是在不同的服務器上運行,然後從客戶端項目只是一個服務引用添加到其中的一個(WS1爲例)。這將爲您生成客戶端代理。也許給它一個通用的名字,比如「serviceX」(用適合你的應用的東西替換X)。

然後,在您的客戶端配置文件中,複製它創建的客戶端端點,並添加另一個端點,唯一的區別是地址和端點名稱。也許您希望將每個端點上的端點名稱屬性分別設置爲「WS1」和「WS2」。

然後,在你的代碼,你應該能夠做這樣的事情:

(...) 

serviceXClient aux = null; 

if (someCondition == true) 
{ 
    aux = new serviceXClient("WS1"); 
} 
else 
{ 
    aux = new serviceXClient("WS2"); 
} 

aux.service(parameter1); 

(...)