WCF <операция>Асинхронные методы не генерируются в интерфейсе прокси

Я хочу использовать <operation>Asnyc методы, а не Begin<operation>/End<operation> на моем прокси клиента службы WCF, потому что я обновляю элементы управления WPF и должен убедиться, что они обновляются из потока пользовательского интерфейса. Я мог бы использовать класс Dispatcher для постановки в очередь элементов потока пользовательского интерфейса, но я не об этом спрашиваю...

Я настроил ссылку на службу для генерации асинхронных операций, но она генерирует только методы в реализации прокси, а не его интерфейс. Интерфейс содержит только синхронный и Begin<operation>/End<operation> методы.

Почему эти методы не генерируются в интерфейсе и есть ли способ сделать это, или мне нужно создать производный интерфейс, чтобы добавить их вручную?

2 ответа

Решение

В итоге я создал свой собственный интерфейс вручную, вот так:

public interface IMyServiceProxy : IGeneratedServiceProxy
{
   void GetEntityAsync(GetEntityRequest request);
   void GetEntityAsync(GetEntityRequest request, object userState);
   event EventHandler<GetEntityCompletedEventArgs> GetEntityCompleted;
}

и затем создание производного класса, который реализует мой интерфейс:

public class MyServiceProxy : GeneratedServiceProxy, IMyServiceProxy
{
}

Дайте мне знать, если кто-нибудь найдет лучший обходной путь.

Ваш проект должен быть нацелен на.NET Framework 3.5, чтобы генерировать прокси на основе событий. Смотрите раздел "Как включить" здесь.

Другие вопросы по тегам