У нас есть надежный клиент WCF, созданный в 2008 году на .NET 3.5 (теперь перекомпилированный под .NET 4.0), который общается с нашей собственной службой WCF через привязку net.tcp. Надежный клиент использует ChannelFactory ‹IOurServiceInterface› () для создания прокси-сервера службы, через который мы в настоящее время выполняем синхронные вызовы службы. Мы получаем результат от каждого звонка; у нас нет односторонних звонков.
Мы переходим на .NET 4.5 / C # 5 и хотим сделать клиент асинхронным с помощью async / await / TAP. Как лучше всего сделать это таким образом, чтобы получить чистый код и хорошую производительность во время выполнения?
(Я просмотрел документацию MS по этому поводу, но в ней всегда говорится о запуске svcutil. Мы не используем svcutil; мы используем ChannelFactory напрямую. Также: документация MS для асинхронного вызова операций с использованием фабрики каналов в .NET 4.5 не изменилась со дня .NET 3.0. Кажется, ChannelFactory не принял новую асинхронность.)