开发者

Importing a WCF method into WP7 App becomes async and doesnt return the list.

I am new to creating WCF projects as well as windows phone 7.

I created a simple method in WCF which just returns a list of an object.

public List<Sticky> GetSticky()
{
    return stickys;
}

I then used it very simply

Sticky[] test = client.GetSticky();

When I import the WCF dll via a service reference into a console app the method acts how it should. When I import the method into a Windows Phone 7 application it become an async 开发者_高级运维method (not sure what this means)and doesnt return a list, it comes up void.

client.GetStickyAsync();

If anyone can help explain what is going on and help me to be a little less confused.


Silverlight wants you to avoid making blocking service calls on the UI thread, so it forces you to use the non-blocking, async version of WCF method calls. This means that the call returns immediately and you must get the result of the call with the related event. What you need to do is register an event handler before you make the call.

client.GetStickyCompleted 
    += new EventHandler<ServiceClient.GetStickyCompletedEventArgs>(client_GetStickyCompleted);
client.GetStickyAsync();

The result of your method call is one of the parameters passed into the event handler, like such

void client_GetStickyCompleted(object sender, ServiceClient.GetStickyCompletedEventArgs e)
{
    List<Sticky> retList = e.Result;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜