public async Task <TResult> SendAsync <TResult>(Expression <Func <T, TResult> > func, IAPIClientInterceptor interceptor = null) { if (func == null) { throw new ArgumentNullException(nameof(func)); } if (interceptor == null) { interceptor = Interceptor; } var lambda = Lambda.Compose(func); var msg = await SendLambdaAsync(lambda, interceptor); msg.EnsureSuccessStatusCode(); if (msg as object is TResult result) { return(result); } return(await msg.ToObjectAsync <TResult>(Environment.MediaTypeFormatters)); }