2012-04-22 19 views
1

我有一個編程連接到WCF服務的WinForms客戶端。這是連接變量的聲明...如何根據if條件以編程方式聲明不同的WCF綁定類型?

var myBinding = new NetTcpBinding(); 
var myEndpoint = new EndpointAddress(myURI); 
var myChannelFactory = new ChannelFactory<IService>(myBinding, myEndpoint); 

不過,我想用不同類(不只是NetTcpBinding的)取決於去改變它,這樣我可以定義「myBinding」(相同的變量名) if語句的結果。

這就是我想要的(我知道這是行不通的,但請理解我的意圖)

if (bindingType == "BasicHttpBinding") { var myBinding = new BasicHttpBinding(); } 
if (bindingType == "NetTcpBinding") { var myBinding = new NetTcpBinding(); } 
if (bindingType == "WSHttpBinding") { var myBinding = new WSHttpBinding(); } 

誰能告訴我如何實現與工作的方法相同的結果?同樣,我想要的是能夠根據if語句的結果來定義「myBinding」。我也願意考慮替代建議。由於

回答

3

我不能保證這會工作,但嘗試宣告myBindingbase class

string bindingType = "BasicHttpBinding"; 
System.ServiceModel.Channels.Binding myBinding; 

if (bindingType == "BasicHttpBinding") { myBinding = new BasicHttpBinding(); } 
if (bindingType == "NetTcpBinding") { myBinding = new NetTcpBinding(); } 
if (bindingType == "WSHttpBinding") { myBinding = new WSHttpBinding(); } 
+0

+1效果很好。謝謝。 – Sam 2012-04-22 04:13:07

+0

很高興聽到它! – lordcheeto 2012-04-22 05:23:38