是否可以在 ServiceStack 的服务器方法上利用 async/await?谷歌搜索带来了ServiceStack 的一个分支,它似乎可以解决问题,但它已经几个月没有更新了,并且没有信息是否该代码已合并到当前的官方版本(v3.9.32)中。
我使用 async / await 模式构建了一个简单的服务,它的行为不正确,但我想知道这是否只是一个配置问题。这是代码:
public class PodcastService : Service
{
public async Task<object> Get(Podcast request)
{
var client = new WebClient();
var data = await client.DownloadStringTaskAsync("http://www.google.fi");
return new PodcastResponse() { Date = DateTime.Now };
}
}
这是该方法返回的 JSON:
{"Result":{"__type":"WebApplication2.PodcastResponse, WebApplication2","Date":"2012-12-10T17:18:32.1653985+02:00"},"Id":1,"Status":"RanToCompletion","IsCanceled":false,"IsCompleted":true,"CreationOptions":0,"IsFaulted":false}
为了比较,这是没有任何 async/await 的相同方法:
public class PodcastService : Service
{
public object Get(Podcast request)
{
return new PodcastResponse() { Date = DateTime.Now };
}
}
结果如下:
{"Date":"2012-12-10T17:20:23.0245677+02:00"}
有任何想法吗?叉子仍然是要走的路还是异步/等待已经在 ServiceStack 中实现但需要一些配置?