Ich versuche, ein Array von serialisierten Daten schrittweise herunterzuladen. Das Ziel besteht darin, einen einzelnen großen Block vom Server zu senden und teilweise auf dem Client zu verarbeiten, während dieser heruntergeladen wird.Silverlight WebClient Progressive Download
Ich benutze die System.Net.WebClient Klasse und setze ihre AllowReadStreamBuffering Eigenschaft auf false. Laut der MSDN-Dokumentation sollte dies den Zugriff auf den eingehenden Stream vom OpenReadCompleted-Ereignis ermöglichen.
Wenn ich versuche, auf den Stream zuzugreifen, wird jedoch eine NotSupportedException ausgelöst. Dies ist kein domänenübergreifendes Richtlinienproblem. Wenn ich die AllowReadStreamBuffering-Eigenschaft auf true festlege, lädt und liest sie den Inhalt perfekt. Fehle ich etwas? Wie sollte ich progressive Downloads von Silverlight durchführen? diese
Der minimale Code, um dieses Problem zu reproduzieren ist:
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();
}