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