ステートフルサービスとステートレスサービスが同じクラスタにある場合(両方のサービスが同じアプリケーションタイプ(同じソリューション)であると仮定した場合)、ステートレスサービスからステートフルサービスを呼び出すことができます。 'サービスプロキシ'
クラスタ外からステートフルサービスを使用する場合は、API通信リスナーを開く必要があります。
ServiceProxyクラスは、「Microsoft.ServiceFabric.Services」から入手できます。
サービスプロキシは同じクラスタ内でのみ動作します。
作品へのプロキシのためには、使用
IServiceClass proxy = ServiceProxy.Create<IServiceClass >(new Uri(fabric:/your_service));
は、ステートフルなサービスのメソッドは、インターフェイスを使用して公開する必要があります。
public static MyServices.Interfaces.IMyStatefulService GetMyStatefulService()
{
var proxyLocation = new ServiceUriBuilder("MyStatefulService");
var partition = new ServicePartitionKey(1); //provide the partitionKey for stateful services. for stateless services, you can just comment this out
return ServiceProxy.Create<MyServices.Interfaces.IMyStatefulService>(proxyLocation.ToUri(), partition);
}
ServiceProxyがMicrosoft.ServiceFabric.Services.Remoting.Client名前空間からです:サービスが同じアプリ内で住んでいるとき
は、私が例にWebReferenceAppでこれを見つけました。 – mayu