В настоящее время я не использую Service References, так как считаю, что код, который он генерирует, имеет больший вес, чем мне нужно. Вместо этого я создаю прокси-класс, выполнив:
public class MyClient : ClientBase<IMyService>, IMyService
Это отлично сработало, прокси-классы не генерируются, поэтому я снова использую те же типы данных. Но это только позволяет мне создавать синхронные методы клиента.
Что потребуется для генерации асинхронных версий? Я взглянул на автоматически сгенерированный код, который можно было бы добавить при добавлении ссылки на сервис, и, похоже, это слишком много. Тонна типов данных arg начала / конца / onbegin / oncomplete, связанных с событием и т. Д. И т. Д.
Есть ли более простой способ с меньшим количеством строительных лесов, необходимых для создания асинхронных клиентских методов?
Моя конечная цель - иметь возможность использовать новые ключевые слова c # 5 async / await на клиентах веб-сервиса