我们在 2008 年在 .NET 3.5(现在在 .NET 4.0 下重新编译)上构建了一个强大的 WCF 客户端,它通过 net.tcp 绑定与我们自己的 WCF 服务通信。健壮的客户端使用 ChannelFactory<IOurServiceInterface>() 来生成服务代理,我们目前通过它对服务进行同步调用。我们从每次调用中获取结果;我们没有单向电话。
我们正在迁移到 .NET 4.5 / C# 5,并希望使用 async / await / TAP 使客户端异步。如何以产生干净代码和良好运行时性能的方式最好地做到这一点?
(我查看过有关此主题的 MS 文档,但它总是谈论运行 svcutil。我们不使用 svcutil;我们直接使用 ChannelFactory。另外:MS 文档用于在 .NET 4.5 下使用通道工厂异步调用操作未更改自 .NET 3.0 天以来。似乎 ChannelFactory 还没有接受新的异步。)