异步/等待PCL中的WCF客户端

时间:2014-02-18 06:41:16

标签: c# wcf async-await portable-class-library

我正在研究的项目是在服务器端使用WCF服务(代码在同一个项目中)。我想通过编写一个使用该服务的PCL并希望使用Async / Await模式实现调用来扩展它。

由于PCL从一开始就不支持Async / Await,我通过Nuget将BCL.Async包添加到项目中。但每当我尝试生成代理时,就无法选择基于任务的异步客户端,即生成。在PCL中似乎也无法通过ChannelFactory手动添加代理。

我目前的方法是生成代理复制ref类,然后使用TPL提供的Task包装器自己编写async / await模式。但是有更简单的方法吗?如何直接使用async / await模式手动编写包装器而不生成具有相同效果的多个异步模式?

2 个答案:

答案 0 :(得分:3)

最后,我生成了代理,并使用TaskFactory手动包装生成的APM模型,以在PCL中的客户端中生成Async / Await模式。我在这个blog post中写下来了。

编辑:更新了断开的链接。

答案 1 :(得分:0)

您是否尝试过使用/ async参数和svcUtil.exe工具?

在此处查看更多ServiceModel Metadata Utility Tool (Svcutil.exe)