Voici un moyen. Je ne sais pas vraiment si c'est la meilleure ou pas, mais ça marche.
// requires System.Net namespace
WebRequest request = WebRequest.Create(_url);
using (var response = request.GetRespone())
using (var stream = response.GetResponseStream())
{
RasImage image = Load(stream);
}
MISE À JOUR: Il semble que dans Silverlight, la classe WebRequest
n'a pas de méthode GetResponse
; vous n'avez pas d'autre choix que de le faire de manière asynchrone.
Vous trouverez ci-dessous un exemple de code illustrant comment procéder. (Je vous préviens: je l'ai écrit tout à l'heure, sans trop réfléchir à la question de savoir comment il est raisonnable de le faire.Cependant, la façon dont vous choisirez d'implémenter cette fonctionnalité sera probablement très différente, mais cela devrait au moins vous donner une idée générale de ce dont vous avez besoin. faire.)
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();
Une approche similaire, mais plus courte serait d'utiliser 'WebClient.OpenRead'. –
@Fredrik: Nice, ne savait pas à ce sujet. Va montrer qu'il y a presque toujours plus d'une façon de peler un chat. –
Les gars, ces méthodes ne semblent pas être dans le System.Net pour la Silverlight, des indices .... 'request.GetRespone())' ou 'WebClient.OpenRead' Je ne peux pas les utiliser – VoodooChild