Ecco un modo. Non so davvero se sia il modo migliore o no, ma funziona.
// requires System.Net namespace
WebRequest request = WebRequest.Create(_url);
using (var response = request.GetRespone())
using (var stream = response.GetResponseStream())
{
RasImage image = Load(stream);
}
UPDATE: Sembra che in Silverlight, la classe WebRequest
non ha un metodo GetResponse
; non hai altra scelta che farlo in modo asincrono.
Di seguito è riportato un esempio di codice che illustra come procedere. (Vi avverto: l'ho scritto proprio ora, senza mettere troppo in considerazione quanto sia ragionevole.) Il modo in cui scegliete di implementare questa funzionalità sarebbe probabilmente molto diverso. Comunque, questo dovrebbe almeno darvi un'idea generale di ciò di cui avete bisogno
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();
fonte
2010-09-03 20:35:11
Un approccio simile, ma più brevi sarebbe quella di usare 'WebClient.OpenRead'. –
@Fredrik: Bello, non lo sapevo. Va a dimostrare che c'è quasi sempre più di un modo per scuoiare un gatto. –
Ragazzi, questi metodi non sembrano essere nel System.Net per Silverlight, qualsiasi indizio .... 'request.GetRespone())' o 'WebClient.OpenRead' Non li posso usare – VoodooChild