OK、あなたはMyGreatServiceクラスに実装されている方法の多くが付いている完全なIGreatServiceインタフェースを、持っています。
これについては、2番目のユーザーグループに公開するメソッドがほんの少ししかない新しい2番目のインターフェイスIMyServiceBを作成します。 - あなたは、のは言わせ
public class MyGreatService : IGreatService, IMyServiceB
{
..
}
サービスB基本的にはその後、ちょうどあなたが公開するサービスの実装では、それらのいくつかのメソッドを呼び出します:あなたはそれはので、あなたのサービスがIGreatServiceとIMyServiceB(つまり、何の問題絶対に可能だん)の両方を実装しますあなたにも(MethodBなど)IMyServiceB上で公開するIGreatServiceにMethodAを持っている - そのようにそれを実装:
public class MyGreatService : IGreatService, IMyServiceB
{
....
// as defined on IGreatService
public void MethodA (....)
{
}
....
public void MethodB (.....) // as defined on IMyServiceB
{
MethodA();
}
}
その方法を、次の2つの別々のインターフェース(=サービス)を得るが、基本的に、あなたは、あなたのコードを書きます一度。
次に、IMyServiceBを個別のエンドポイントに公開することで、IMyServiceBのみを参照するようになっているユーザーは、別のエンドポイントに接続するだけで、サービスBの操作。
それは動作しますか?
マーク
こんにちはマーク、それはかなりうまくいきます。私は同じサービスを使っていませんでした。なぜなら、それはシングルトンとして実装されていたのですが、プロキシのように機能する第2のサービスを作成しましたが、それでも私の問題は解決しました。 –