2008-09-03 5 views

答えて

2

これはWCFの奇妙な側面の1つです。 channelfactoryを動的に作成することはできますが、既知のタイプのみで行うことができます。

私は完璧ではない解決策を考え出したが、仕事ん:

は、単一のメソッドが含まれているインタフェース、「IFoo」を作成し、Execute()を言います。 ESBで、接続先のエンドポイント用にChannelFactory<IFoo>を動的に作成します。接続プロパティ(URIなど)を設定します。

ここで、ESBにサービスを動的にアタッチすることができます。ただし、常に「IFoo」インターフェイスを実装する必要があります。

2

私はずっと以前にSOAP Webサービスを使っていました。 GotDotNetにはWeb Services Studio Expressというツールがあり、WSDLファイルを検査/解析して呼び出すことができるコードを持っていたと思います。

私は、WSDLはクライアントの作成時に知られており、実行時に接続する必要はないと仮定します。実行時にWSDLを検査する場合は、プロキシの生成方法を決定するためのロジックが必要です。実行時にWSDLを消費しないのはなぜですか? Webサービスは、一度公開されると変更されないインターフェースでかなり静的であると考えられています。

.NET CodeDomを使用して、WSDLで記述されたWebサービスを実行して使用するコードを生成できます。 WSDLは、標準の.NET XMLクラスを使用して解析できます。

+0

ウェブサービスが、サードパーティのデータフィードを使用して相互に機能するようになりました。お客様は、ソフトウェアの次のリリースを待たずにセットアップできるようにしたいと考えています。例えば、エクセルは、エクセルを書いたときにWSDLに関するMicrosoftのkowningなしで、Webサービスからデータをインポートすることができます! –

0

私は実際に実行時にルーティングするWebサービスを追加できる小さなESBの作成を検討しています。 WSDLを静的に追加することはできません。

関連する問題