У меня есть следующий код, где SprintServiceClient является ссылкой на службу WCF -
public class OnlineService
{
private SprintServiceClient _client;
public OnlineService()
{
_client = new SprintServiceClient();
}
public void AddMemberToTeam(MemberModel user, int projectId, Action<int> callback)
{
_client.AddMemberToTeamCompleted += (s, e) => callback(e.Result);
_client.AddMemberToTeamAsync(user.ToUser(), projectId);
}
}
проблема заключается в том, что каждый раз, когда вызывается AddMemberToTeam, он добавляет еще один обратный вызов к клиенту. AddMemberToTeamCompleted
т.е. первый раз, когда AddMemberToTeam вызывается, обратный вызов вызывается один раз, второй раз, когда AddMemberToTeam вызывается, обратный вызов вызывается дважды и т. д.
Есть ли способ удалить обработчик событий из AddMemberToTeamCompleted после вызова или использования обработчика событийдругой метод, который принимает в обратном вызове?