我正在尝试从 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 然后调用其方法的示例吗?
最佳答案
Silverlight 不允许您同步执行 IO 任务以保持应用程序响应。这就是 GetResponse()
不可用的原因。您需要异步获取响应:
WebRequest request = WebRequest.Create(/* URI */);
request.BeginGetResponse(HandleResponse, request);
当响应可用时,将调用您传递给该方法的委托(delegate)。该方法的实现示例:
private void HandleResponse(IAsyncResult result)
{
WebRequest request = (WebRequest)(result.AsyncState);
using (var response = request.EndGetResponse(result))
{
// do something with the response
}
}
关于c# - 如何从 Silverlight 以编程方式调用 Web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24936868/