2011-12-20 4 views
2

クライアントアプリケーションのサービスの名前空間を "foreach"するにはどうすればよいですか?app.configファイルからクライアントアプリケーション内のforeach契約

私のサービスにはweb.configファイルがあります。ここで クライアントセクション:

updater.ServiceReference1.Service1Client myclient = new updater.ServiceReference1.Service1Client(); 

問題:将来的には、私は私のサービス上で(web.configファイルに50以上の参照を持つことになり、私はこのようにそれを使用する私のクライアントアプリで

<client> 
     <endpoint address="http://nail:81/raj/Service1.svc" binding="basicHttpBinding" 
     bindingConfiguration="BasicHttpBinding_IService1" contract="ServiceReference1.IService1" 
     name="BasicHttpBinding_IService1" /> 
     <endpoint address="http://www.xxx.ru:81/upd/Service1.svc" 
     binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService11" 
     contract="ServiceReference2.IService1" name="BasicHttpBinding_IService11" /> 
    </client> 

)。 そして私はこのように50行のコード行を書いたくありません。

ありがとうございます!

+0

反復サービスクライアントの名前空間が50回インスタンス化されるのを避けるために、どちらがポイントであるのか分かりません。 これらの名前空間を繰り返しても、これで得られるメリットは何ですか?一度にすべてのサービスの操作を呼びますか? 私が間違っている場合は私を修正しますが、これは必要ありません。 サービス操作を呼び出す必要がある場合は、サービスクライアントの特定のインスタンスを作成する必要があります。 –

+0

私は1つのクライアントアプリケーションと50のサービスを持つ50台のコンピュータを持っています。これらのサービスはすべて自分のコンピュータに接続しています。それらのすべてを使用したい場合は、50個のクライアントオブジェクトを作成する必要があります。しかし、私は、クライアントのオブジェクトを作成するために「foreach」のようなものを使い、それを使いたいと思う。多分他の方法がありますか? – Oleg

答えて

1

本当に、私は50のサービス参照のために50個のオブジェクトを必要としません。

endpoint address="" 

をそして、私のクライアントコードから、円の中に、私が書く::App.configファイルでは、クライアントのセクションで私が書くことができますすべてです

EndpointAddress endp = new EndpointAddress("some_ip_adress"); 
          myclient.Endpoint.Address = endp; 

を。

ありがとうございましたMatíasFidemraizer

+0

問題はありません、幸運:) –

0

あなたが持っているものは、インスタンス化していないサービスとエンドポイントの設定です。

updater.ServiceReference1.Service1Clientをインスタンス化します。これは、WSDLツールによって生成されるプロキシクラスです。この動的にする唯一の方法は、Reflectionを使用してその名前空間の型をロードすることです。

2

(もちろん、そしてあなたの質問)あなたのコメントの一つに答える:

は、私は1つのクライアント・アプリケーションと50回のサービスと50台のコンピュータを持っています。これらのサービスの内の はすべて私のコンピュータに接続しています。 のすべてを使用する場合は、50個のクライアントオブジェクトを作成する必要があります。しかし、私は何かを作成クライアントのオブジェクトのための 'foreach'のようなものを使用して、それらを使用することを望みます。おそらくそこに 他の方法ですか?

正直なところ、私は50回あなたのサービスのクライアントをインスタンス上の任意の利点が見つからないと、あなたはサービス操作を呼び出したいどこかの変数を作成するためのインスタンスを作成」に比べて、それらを使用するようにこれらのオブジェクトを持っていますいくつかのサービスクライアント "です。

本当にあなたは50個のオブジェクトをメモリに持っていますが、何のためですか?それは記憶の浪費であり、あなたの目標はいくらか役に立たない。

ビジネスレイヤーに50人のビジネスマネージャーがいて、私はそれらをプリロードしたいと思います...しかし、待ってください。

多分私はあなたの目標を誤解しているかもしれませんが、シナリオを過度に複雑にして同じポイントに到達したいと思うようです。

+0

app.config(クライアントセクション)のエンドポイント名が異なる必要があるため、異なる名前のオブジェクトがあります。これらのエンドポイントをすべて使用する必要がある場合は、対応するオブジェクトを作成する必要があります。あるいは、私は50行のコード行を書くか、まったく(どのような方法でも)「foreach」を作成してサークルを使用します。それは可能ですか? – Oleg

+0

あなたの質問に答える前に、別のものに答えてください:これらの50個のオブジェクトのインスタンスを一点に作成する必要がありますか?私はそこにそれらをすべて取り込まなければならないいくつかの方法を持っていますか? –

+0

いいえ、私は必要ありません!正しいアイデアをありがとう! – Oleg

関連する問題