我工作的一個異步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>
如何在不知道類型的情況下從結果中返回任務?
這是調用通用的代碼類型
類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>
暴露任務?如果我從Task更改爲普通Task,則不起作用。它仍然是一個任務,所以WebApi應該能夠用一些魔法來解決這個問題?我想要這個
public Task Get([FromUri] Contract contract)
{
return _invoker.Invoke(CreateDto<Query>(contract));
}
現在它返回一個任務
是否有任何理由宣佈它返回'任務
你不能有返回值?當這樣做時WebApi沒有顯示任何東西 – Anders