Как я могу обернуть результат метода async в свой собственный класс-оболочку (MyEnvelop) и вернуть его как задачу?Как обернуть результат асинхронного метода
Я использую собственный класс Envelope для возврата результатов из моего компонента Data Access обратно в Business Layer. Это прекрасно работает с методами синхронизации, но как я могу вернуть результат типа MyEnvelope в асинхронном режиме?
Обновлено пример кода:
public async Task<MyEnvelope<Customer>> FindAsync(params object[] keyValues)
{
using (var nw = new NWRepository())
{
Customer result = await nw.DoSomethingAsync<Customer>(keyValues);
return // here I would like to return new MyEnvelope<Customer>(result)
// wrapped in Task as shown in the signature
}
}
Хорошо, я получил AWAIT вещь, но в вашей выборке вы возвращаетесь MyEnvelope, но мне нужно Task > ...? Не уверен, что мы имеем в виду то же самое. Он должен быть MyEnvelope. должен быть завернут в Task >, потому что вызывающий метод ожидает задание –
Legends
Нет, если вы не используете ключевое слово async, возвращаемый вами тип это тип внутри задачи. –
Aaaaah, теперь я вижу, я сначала подумал, что это должна быть Task.FromResult. Спасибо! – Legends