私は現在、複数の異なるクライアント アプリケーションで使用される 1 つのサービス コントラクト インターフェイス (以降「SCI」) で構成される大規模な WCF サービスをリファクタリングしています。クライアント アプリケーションの種類ごとに、必要な操作に固有の SCI が存在するように、SCI を分割しました。SCI の一部の共有セクションは、クライアント アプリケーション固有の SCI が継承する基本 SCI で定義されます。
すべてのクライアント固有の SCI を実装する単一のサービス クラスがあります。共有ベース SCI からのダイアモンド インターフェイス継承状況があるという事実は、場合によっては、同じ操作が複数の SCI を介して利用可能であることを意味します。クライアントを自動生成する場合 (特に非同期クライアント メソッドを使用する場合)、結果のコードには多くの醜いものがあり<generated-type>1,2,3
ます...
これを回避するために、特定のアプリケーションに関連する SCI のクライアントのみを生成するサービス参照を各クライアント アプリケーションに追加したいと考えています。同じ機能が異なる SCI に表示されるため、問題は発生しません。
これは可能ですか?
この状況でモジュール性とコードの再利用の両方を達成するための他のヒントもいただければ幸いです。