2012-04-22 12 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

+0

それを聞いてうれしい! – lordcheeto

関連する問題