我有一个像这样的可移植类库(PCL)方法:
public async Task<string> GetLineStatuses()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
using (HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync())
{
return response.GetResponseStream().ReadAllText();
}
}
我的 ASP.NET Web Api 方法如下:
public async Task<HttpResponseMessage> Get()
{
HttpResponseMessage response = new HttpResponseMessage();
string statuses = await service.GetStatuses();
response.Content = new StringContent(statuses);
return response;
}
返回Web API中的Task有什么影响?这是允许的吗?我想使用await的唯一原因是为了使用可移植类库(PCL)。最佳实践是什么?我应该拥有一个同步版本和异步版本的方法吗?对性能、代码可读性和可维护性有什么影响?
如果我返回Task<string>
而不是Task<HttpResponseMessage>
,会产生相同的效果吗?
async
方法,所以你的代码应该可以正常工作。你为什么要问这是否被允许?难道你没有尝试过吗? - svick