public override async Task InterceptAsync(IAbpMethodInvocation invocation) { var context = new ClientProxyRequestContext( await GetActionApiDescriptionModel(invocation), invocation.ArgumentsDictionary, typeof(TService)); if (invocation.Method.ReturnType.GenericTypeArguments.IsNullOrEmpty()) { await InterceptorClientProxy.CallRequestAsync(context); } else { var returnType = invocation.Method.ReturnType.GenericTypeArguments[0]; var result = (Task)CallRequestAsyncMethod .MakeGenericMethod(returnType) .Invoke(this, new object[] { context }); invocation.ReturnValue = await GetResultAsync(result, returnType); } }
protected virtual async Task <T> CallRequestAsync <T>(ClientProxyRequestContext context) { return(await InterceptorClientProxy.CallRequestAsync <T>(context)); }