я следующее:крепления обработчик, который возвращает значение к событию, C#
public String AttachService(string whereClauseParam)
{
//Get Client object here
Client c = new Client();
string cookieFromRequest = WebOperationContext.Current.IncomingRequest.Headers[HttpRequestHeader.Cookie];
tokenInfo.TryGetValue(cookieFromRequest, out c);
string[] arr = new string[] { };
c.AttachedServiceStatus += OnAttachedServiceStatus;
string whereClause = whereClauseParam.ToString();
//c.AttachService("binding.interface='query_em'", 8799989);
return string.Format("attached");
}
// Обработчик ниже код:
public string OnAttachedServiceStatus(Client sender, ClientServiceAttachedStatus status)
{
if (status.AttachStatus == AttachedStatus.Connected && status.ServiceAttachStatus == ServiceAttachStatus.Attached)
{
//update the Client object in Dictionary
Client c = new Client();
var ou = tokenInfo.First(x => x.Value == sender);
tokenInfo.TryGetValue(ou.Key.ToString(), out c);
tokenInfo.TryRemove(ou.Key.ToString(), out c);
tokenInfo.TryAdd(ou.Key.ToString(), sender);
string[] statusInfoT = new string[200];
statusInfoT[0] = status.ServiceId.ToString();
statusInfoT[1] = status.AttachStatus.ToString();
statusInfoT[2] = status.ServiceAttachStatus.ToString();
statusInfoT[3] = status.VirtualServiceId.ToString();
statusInfoT[4] = status.AttachToken.ToString();
statusInfo.TryAdd(ou.Key.ToString(), statusInfoT);
//update the UI with a Dispatch - TO BE DONE
}
return "Connected";
}
Описанный выше метод AttachService имеет обработчик «OnAttachedServiceStatus» прикреплен к событие «AttachedServiceStatus». Пока функция OnAttachedServiceStatus возвращает void, все работает хорошо. Тем не менее, теперь мне нужно, чтобы Handler OnAttachedServiceStatus возвращал строку, но я не могу правильно прикрепить обработчик.
Я думаю об использовании делегата Func, но не знаю, как его использовать. Пожалуйста, помогите!
Верните его туда, где именно? есть причина, по которой обработчики событий недействительны, и причина в том, что ваш код не вызывает их, поэтому нет кода для возврата значения. –
Я хочу, чтобы обработчик «OnAttachedServiceStatus» возвращал строку обратно Caller «AttachService», но я не могу получить следующие правильные – RookieDude
c.AttachedServiceStatus + = OnAttachedServiceStatus; – RookieDude