Вызов службы WCF в одну сторону от Silverlight - PullRequest
1 голос
/ 01 апреля 2012

Только что прочитал это: http://blogs.msdn.com/b/andypennell/archive/2010/09/20/using-wcf-on-windows-phone-7-walk-through.aspx

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

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

Ответы [ 2 ]

0 голосов
/ 01 апреля 2012

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

Вместо использования 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
    }
}
0 голосов
/ 01 апреля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...