internal void HandleX2XServiceInvocation(X2XServiceInvocation x) { logger.Trace($"Invoking service {x.ServiceGuid} method {x.MethodName} with {x.MethodArguments.Length} arguments"); Task.Factory.StartNew(async(dummy) => { try { var result = await hostContext.Invoke(x.ServiceGuid, x.MethodName, x.GenericArguments, x.MethodArguments); var sendTask = messageSender.SendInvocationResultAsync(x.InvocationId, result); } catch (Exception e) { logger.Error(e); } }, CancellationToken.None, TaskCreationOptions.LongRunning); }
public Task <object> InvokeServiceCall(Guid serviceGuid, string methodName, Type[] genericArguments, object[] methodArguments) { logger.Trace($"Invoking service call on service {serviceGuid} method {methodName} with {genericArguments.Length} generic arguments and {methodArguments.Length} arguments."); return(hostContext.Invoke(serviceGuid, methodName, genericArguments, methodArguments)); }