c# - webclient 方法不适用于我的 Silverlight 应用程序

标签 c# asp.net silverlight webclient

尝试在C#中做基本的webclient数据拉取,visualstudio中没有方法,代码编译不通过。

        //snip
        WebClient client = new WebClient();
        byte[] resp = client.DownloadData(url);
        //snip

错误 1 ​​'System.Net.WebClient' 不包含 'DownloadData' 的定义,并且找不到接受类型为 'System.Net.WebClient' 的第一个参数的扩展方法 'DownloadData'(您是否缺少使用指令或程序集引用?) C:\Users\Michael\Documents\Visual Studio 2008\Projects\search2\search2\MainPage.xaml.cs

我在 XAML/Silverlight 项目的 c# 文件中执行此操作,但无法想象为什么这会有所不同。我在网上找不到任何关于这个问题的引用,上个月我有类似的东西,但在常规的 ASP.NET 页面中,而不是在 Silverlight 应用程序中。

最佳答案

Silverlight 仅具有完整 .NET 功能的一个子集。更值得注意的是,它不包含用于与 Web 服务通信的阻塞方法。这让程序员的生活有点困难,但对用户来说却是一件了不起的事情——您不能(轻松地)编写在服务器没有快速响应时会挂起的 Silverlight 应用程序。

如果您可以将数据作为文本传输,则可以使用DownloadStringAsync 方法:

var wc = new WebClient();
wc.DownloadStringCompleted += (sender, e) => {
     string data = (string)e.Result;
     // Process the data here
   }
wc.DownloadStringAsync(new Uri(address));

如果您需要传输二进制数据,那么您可能必须使用HttpWebRequest class。明确地。

关于c# - webclient 方法不适用于我的 Silverlight 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2308578/

相关文章:

c# - 无法打开 Web 项目,因为未安装 IIS Express(即使已安装)

c# - 使用存储过程从 SQL Server 返回数据

WPF/XAML - 文本可以自动调整大小吗?

c# - ASP.NET MVC - 全局错误处理方法?

c# - WiX 烧录 : how to change 'WixBundleManufacturer' in bootstrapper application?

c# - 是否可以在 UpdateCommand 运行之前以编程方式在 TextBox 控件中输入值

c# - 如何在 ASP.NET Web API Core 应用程序上使用 QUARTZ 实现调度程序?

c# - 未找到 VisualStateGroups?

c# - 如何使用 JSON.Net 获取反序列化 json 的 key

javascript - 如何像在 Javascript 中一样在 C# 中匹配两个数组?