我正在尝试逐步下载一系列序列化数据。目标是从服务器发送一个大块,同时在客户端部分处理它,而它还在下载中。
我使用System.Net.WebClient类,并将其AllowReadStreamBuffering属性设置为false。根据MSDN文档,这应该允许我从OpenReadCompleted事件访问传入的流。
然而,当我尝试访问流时,它会抛出NotSupportedException异常。这不是跨域策略问题,如果我将AllowReadStreamBuffering属性设置为true,则可以完美地加载和读取内容。我错过了什么吗?我应该如何执行来自Silverlight的渐进式下载?
复制此问题的最小代码如下:
我使用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();
}