/// <inheritdoc /> public async Task <T> SourceAsync <T>(ISourceRequest request, CancellationToken cancellationToken = default(CancellationToken)) where T : class { request.RouteValues.Resolve(ConnectionSettings); var result = await Dispatcher.DispatchAsync <ISourceRequest, SourceRequestParameters, SourceResponse <T>, ISourceResponse <T> >( request, cancellationToken, ToSourceResponse <T>, (p, d, c) => LowLevelDispatch.GetSourceDispatchAsync <SourceResponse <T> >(p, c) ) .ConfigureAwait(false); return(result.Body); }