我正在尝试逐步下载一系列序列化数据。目标是从服务器发送一个大块,并在下载时在客户端上对其进行部分处理。
我正在使用 System.Net.WebClient 类并将其 AllowReadStreamBuffering 属性设置为 false。根据 MSDN 文档,这应该允许我访问来自 OpenReadCompleted 事件的传入流。
但是,当我尝试访问流时,它会引发 NotSupportedException。这不是跨域策略问题,如果我将 AllowReadStreamBuffering 属性设置为 true,它会完美地加载和读取内容。我错过了什么吗?我应该如何从 Silverlight 执行渐进式下载?
复制此问题的最少代码是这样的:
private void BeginProgressiveDownload()
{
WebClient client = new WebClient();
client.AllowReadStreamBuffering = false;
client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);
client.OpenReadAsync(new Uri("http://STREAMABLE RESOURCE HERE"));
}
void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
e.Result.ReadByte();
}