WCF を使用した動的プログラミングの経験がある人はいますか。動的プログラミングとは、WSDL のランタイム消費を意味します。1 つのブログ エントリ/ツールを見つけました: http://blogs.msdn.com/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx
ここで誰かがこれに適したツールを見つけましたか?
WCF を使用した動的プログラミングの経験がある人はいますか。動的プログラミングとは、WSDL のランタイム消費を意味します。1 つのブログ エントリ/ツールを見つけました: http://blogs.msdn.com/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx
ここで誰かがこれに適したツールを見つけましたか?
これは、WCFの奇妙な側面の1つです。チャネルファクトリを動的に作成できますが、既知のタイプでのみ作成できます。
私は完璧ではないがうまくいく解決策を思いついた:
たとえば、単一のメソッドを含むインターフェース「IFoo」を作成しますExecute()
。ESBで、ChannelFactory<IFoo>
接続するエンドポイントのを動的に作成します。接続プロパティ(URIなど)を設定します。
これで、サービスが常に「IFoo」インターフェースを実装していれば、サービスをESBに動的に接続できます。
私はずっと前に SOAP Web サービスでこれを行いました。GotDotNet には、Web Services Studio Expressになったと思われるツールがありました。これには、WSDL ファイルを検査/解析し、それを呼び出すことができるコードが含まれていました。
クライアントの作成時に WSDL が既知であり、実行時に接続する必要がないという前提があると思います。実行時に WSDL を検査する場合でも、プロキシの生成方法を決定する何らかのロジックが必要です。実行前に WSDL を使用できないのはなぜですか? Web サービスは、いったん公開されると変更されないインターフェイスを備えた、かなり静的であると想定されています。
.NET CodeDom を使用してコードを生成し、WSDL で記述された Web サービスを実行および使用できます。WSDL は、標準の .NET XML クラスを使用して解析できます。
私は実際に、ユーザーが実行時にルーティングするWebサービスを追加できる小さなESBを作成することを検討しています。したがって、WSDLを静的に追加することはできません