Aquí hay una manera. Realmente no sé si es la mejor manera o no, pero funciona.
// requires System.Net namespace
WebRequest request = WebRequest.Create(_url);
using (var response = request.GetRespone())
using (var stream = response.GetResponseStream())
{
RasImage image = Load(stream);
}
ACTUALIZACIÓN: Parece que en Silverlight, la clase WebRequest
no tiene un método GetResponse
; no tienes más remedio que hacer esto de forma asíncrona.
A continuación se muestra un ejemplo de código que ilustra cómo puede hacerlo. (Te lo advierto: escribí esto hace un momento, sin pensar demasiado en lo sensato que es. La forma en que elijas implementar esta funcionalidad probablemente sea bastante diferente. De todos modos, al menos esto debería darte una idea general de lo que necesitas hacer)
WebRequest request = WebRequest.Create(_url);
IAsyncResult getResponseResult = request.BeginGetResponse(
result =>
{
using (var response = request.EndGetResponse(result))
using (var stream = response.GetResponseStream())
{
RasImage image = Load(stream);
// Do something with image.
}
},
null
);
Console.WriteLine("Waiting for response from '{0}'...", _url);
getResponseResult.AsyncWaitHandle.WaitOne();
Console.WriteLine("The stream has been loaded. Press Enter to quit.");
Console.ReadLine();
Un enfoque similar, pero más corto sería utilizar 'WebClient.OpenRead'. –
@Fredrik: Bien, no sabía de eso. Va a mostrar que casi siempre hay más de una manera de despellejar a un gato. –
Chicos, estos métodos no parecen estar en System.Net para Silverlight, ninguna pista ... 'request.GetRespone())' o 'WebClient.OpenRead' No puedo usarlos – VoodooChild