我正试图从Silverlight访问WebService并调用它的方法。
我尝试使用以下示例: http://www.codeproject.com/Tips/394436/Calling-a-webservice-programmatically
// In Silverlight it is not posible to use this
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
但它不适用于Silverlight应用程序。您是否有任何示例如何从Silverlight连接到WebService然后调用其方法?
答案 0 :(得分:2)
Silverlight不允许您同步执行IO任务以使应用程序保持响应。这就是GetResponse()
无法使用的原因。您需要异步获取响应:
WebRequest request = WebRequest.Create(/* URI */);
request.BeginGetResponse(HandleResponse, request);
当repsonse可用时,将调用传递给该方法的委托。此方法的示例实现:
private void HandleResponse(IAsyncResult result)
{
WebRequest request = (WebRequest)(result.AsyncState);
using (var response = request.EndGetResponse(result))
{
// do something with the response
}
}