Я пытаюсь постепенно загрузить массив сериализованных данных. Цель состоит в том, чтобы отправить один большой блок с сервера и частично обработать его на клиенте во время загрузки.Silverlight WebClient Progressive Загрузить
Я использую класс 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();
}