я работаю на асинхронном CQS APIзадачи с результатом неизвестного типа
Метод WebAPI выглядит следующим образом
public async Task<object> Get([FromUri] Contract contract)
{
return await _invoker.Invoke(CreateDto<Query>(contract));
}
Не может неявно преобразовать тип «
System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Customer>>
» к 'System.Threading.Tasks.Task<object>
Как я могу вернуть задачу из результата, не зная тип?
Это код, который вызывает Generic набран класс
public Task<object> Invoke(Query query)
{
var queryHandlerType = typeof(IQueryHandler<,>);
var queryType = query.GetType();
var queryResultType = queryType.BaseType.GetGenericArguments().First();
var handler = _container.GetInstance(queryHandlerType.MakeGenericType(queryType, queryResultType)) as dynamic;
return handler.Handle(query as dynamic);
}
редактировать: Есть ли причина, почему WebAPI не поддерживает Task<T>
представленные как Задачу? Если я перейду из задачи в простое задание, это не сработает. Его все еще задача под тем, чтобы WebApi должен был решить это с помощью какой-то магии? Я хочу сделать это
public Task Get([FromUri] Contract contract)
{
return _invoker.Invoke(CreateDto<Query>(contract));
}
сейчас она возвращает Task
Есть ли причина, по которой было объявлено о возврате 'Task
Вы не можете вернуть значения? WebApi ничего не делает, когда делает это так: – Anders