c# - 如何从 Silverlight 以编程方式调用 Web 服务?

标签 c# web-services silverlight

我正在尝试从 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/

相关文章:

c# - ImageMagick.NET 异常

c# - 仅上传文件以解压缩,而不在服务器上写入文件

java - 推送网络服务 : Invalid UTF-8 start byte

wpf - 适用于 WPF 的 Silverlight ChildWindow

silverlight - 蒙皮控制背景 - 更好的性能?

c# - 使用 AfterCompile 目标签署 ClickOnce 应用程序

c# - 如何在 MVC Html.DropDownList() 中添加静态项目列表

javascript - AngularJS 从 ng-repeat 创建的表单中选择值

java - 暂停和通知 Java Web 服务中的特定线程

c# - 为什么要使用 DataForm?