0

実行時に評価された特定の条件に基づいて、WCFサービス1またはWCFサービス2を呼び出す必要があります。どちらのサービスも似ていますが、異なるサーバーでホストされています。

異なるURLを指すNS1とNS2の2つのサービス参照を追加しました。現在のコードはすでにNS1を使用しています。このNS1の実装は、すでに多くの場所で行われていることを考慮してください。コードをリファクタリングして、呼び出す必要のあるサービスを動的に選択するための最良の方法は何でしょうか。

4

1 に答える 1

1

一般に、svcutil.exeによって生成されたプロキシに対して直接プログラムすることは悪い習慣と見なされます。

最善の方法は、独自のクラスでラップし、サービスが必要になるたびにこのクラスを参照することです。これにより、ルーティング(あなたの場合)やその他の横断的関心事など、より高度なビジネスロジックを実装することもできます。例:これで、サービスへの接続に使用している戦略、つまりサービス参照またはChannelFactoryをアプリケーションから抽象化できます。あいまいさを生じることなく、異なるアセンブリ間でサービスを簡単に共有できます。

あなたはNS1に対して直接書かれた多くのコードを持っていると言っています。歯を磨いて包みます。汚い仕事が多いですが、リスクは非常に低いです。

上記のように、サービスが別のサーバー上のそれ自体の別のインスタンスを呼び出すという要件自体について疑問に思います(私があなたを正しく理解した場合)。これは変なにおいがします、あなたが解決しようとしている問題は何ですか?

于 2012-09-17T10:59:44.217 に答える