public async Task <TResult> AsyncWithReturn <TResult>(IInvocation invocation) { //TODO: Handle return data deserialization. IHttpClientRequestContext context = RequestContextFactory.CreateContext(new CastleCoreInvocationCallContextAdapter(invocation), new CastleCoreInvocationParametersContextAdapter(invocation)); //If it has no body we don't need to provide or produce serializers for it. if (!context.BodyContext.HasBody) { return(await ProxyClient.Send <TResult>(context, DeserializerFactory)); } //We need to look at the request to determine which serializer strategy should be used. IRequestSerializationStrategy serializer = SerializerFactory.SerializerFor(context.BodyContext.ContentAttributeType); //Because we don't need to get any returned information we can just send it return(await ProxyClient.Send <TResult>(context, serializer, DeserializerFactory).ConfigureAwait(false)); }