public override async Task <object> InterceptAsync(MethodInfo methodInfo, object[] methodArguments) { var methodName = methodInfo.Name; var genericArguments = methodInfo.GetGenericArguments(); validator.ValidateInvocationOrThrow(methodName, genericArguments, methodArguments); var payload = await clusteringPhaseManager.InvokeServiceCall(serviceGuid, methodName, genericArguments, methodArguments); return(translator.TranslateOrThrow(payload, methodInfo, methodArguments)); }
public async Task <object> InvokeServiceCall(Guid serviceGuid, string methodName, Type[] genericArguments, object[] methodArguments) { await phaseTransitionedLatch.WaitAsync(); return(await clusteringPhaseManager.InvokeServiceCall(serviceGuid, methodName, genericArguments, methodArguments)); }