После завершения асинхронного вызова службы WCF я хочу установить сообщение об успешном завершении сеанса и показать пользователю уведомление.
Я попытался использовать два способа для завершения этой операции.
1) Модель, основанная на событиях.
client.GetDataCompleted += new EventHandler<GetDataCompletedEventArgs>(GetDataCompleted);
client.GetDataAsync(id, client);
private void GetDataCompleted(object obj, GetDataCompletedEventArgs e)
{
this.SetNotification(new Notification() { Message = e.Result, Type = NotificationType.Success });
}
В событии MyOperationCompleted я могу установить уведомление HttpContext.Current.Session, но я должен ждать, пока эта операция будет завершена, и не могу перейти на другие страницы.
2) Модель IAsyncResult.
Таким образом, я могу переходить на другие страницы и выполнять асинхронные вызовы службы wcf, но в методе GetDataCallback не может установить уведомление, потому что session = null.
client.BeginGetData(id, GetDataCallback, client);
private void GetDataCallback(IAsyncResult ar)
{
string name = ((ServiceReference1.Service1Client)ar.AsyncState).EndGetData(ar);
this.SetNotification(new Notification() { Message = name, Type = NotificationType.Success });
}
«Создание асинхронных операций» в справочнике услуг включено.
Пожалуйста, помогите мне с этой проблемой. Спасибо.