我从我的Web API操作方法调用异步方法看起来像这样,但我得到了#34;无法隐式地将类型任务员工转换为员工"错误。
我需要做什么?
我的Web API操作方法如下所示:
public IHttpActionResult GetEmployee()
{
// Get employee info
Employee emp = myDataMethod.GetSomeEmployee();
return Ok(emp);
}
我打电话的方法如下:
public static async Task<Employee> GetSomeEmployee()
{
Employee employee = new Employee();
// Some logic here to retrieve employee info
return employee;
}
我需要做什么才能调用此方法来检索员工信息?
P.S。 GetSomeEmployee()方法必须是异步的,因为它会进行其他异步调用以检索员工数据。
答案 0 :(得分:4)
您需要同步调用该方法,或使用await
。 E.g:
同步(GetEmployee()
将阻止直到GetSomeEmployee()
完成):
public IHttpActionResult GetEmployee()
{
// Get employee info
Employee emp = myDataMethod.GetSomeEmployee().Result;
return Ok(emp);
}
异步(GetEmployee()
将立即返回,然后在GetSomeEmployee()
完成时继续):
public async Task<IHttpActionResult> GetEmployee()
{
// Get employee info
Employee emp = await myDataMethod.GetSomeEmployee();
return Ok(emp);
}