2012-03-31 3 views
1

Просто читала это: http://blogs.msdn.com/b/andypennell/archive/2010/09/20/using-wcf-on-windows-phone-7-walk-through.aspxВызов один способ WCF службы из Silverlight

В этой статье говорится: «WCF из Silverlight все асинхронным»

Как вы называете службы WCF, которая имеет возвращение недействительным? Вы просто называете это асинхронно, но не имеете метода обратного вызова?

+0

Я думаю так, но обратный вызов может быть использован для обработки исключений , – Silvermind

ответ

0

Обратный вызов по-прежнему имеет смысл с точки зрения стороны клиента. В этом случае нет ожиданий для логического логического, но вы все равно выдали асинхронный сетевой запрос, и поэтому остается вопрос, удалось ли это сделать. Таким образом, обратный вызов будет в основном состоять в том, чтобы уведомить вас о том, что сообщение было отправлено успешно или была какая-либо проблема связи.

0

С возвратом типа void WCF не создавал подкласс класса args для этого конкретного метода обслуживания, и вы не получили бы «Результат» из службы.

Вместо использования AddCompletedEventArgs, вы должны использовать AsyncCompletedEventArgs базового класса и просто убедитесь, что исключение не было выброшено и передано ваш клиент:

client.AddCompleted += new EventHandler<AsyncCompletedEventArgs>(client_AddCompleted); 

... 

void client_AddCompleted(object sender, AsyncCompletedEventArgs e) 
{ 
    // Notice there is no e.Result 

    if (e.Error != null) 
    { 
     // Do something with the error 
    } 
} 
Смежные вопросы