public Task <TQueryResult> Dispatch <TQuery, TQueryResult>(TQuery query) where TQuery : class where TQueryResult : class { var queryHandler = queryHandlerFactory.Create <TQuery, TQueryResult>(query); try { return(queryHandler.Handle(query)); } finally { queryHandlerFactory.Destroy(queryHandler); } }