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

Mar*_*ark 7 c# wcf async-await portable-class-library

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

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

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

Mar*_*ark 3

最后,我生成了代理并使用 TaskFactory 手动包装生成的 APM 模型,以在 PCL 内的客户端中生成异步/等待模式。我把它写在这篇博文中。

编辑:更新了损坏的链接。