public Task <TResult> DispatchAsync <TQuery, TResult>(TQuery query) where TQuery : IQuery where TResult : IQueryResult { if (query == null) { throw new ArgumentNullException(nameof(query)); } IQueryHandler <TQuery, TResult> handler = _container.Resolve <IQueryHandler <TQuery, TResult> >(); return(handler.RetrieveAsync(query)); }