2010-09-03 11 views

ответ

4

Это один из способов. Я действительно не знаю, лучший ли это или нет, но он работает.

// requires System.Net namespace 
WebRequest request = WebRequest.Create(_url); 

using (var response = request.GetRespone()) 
using (var stream = response.GetResponseStream()) 
{ 
    RasImage image = Load(stream); 
} 

UPDATE: Похоже, что в Silverlight, то WebRequest класс не имеет GetResponse метод; у вас нет выбора, кроме как сделать это асинхронно.

Ниже приведен пример кода примера, иллюстрирующего, как вы можете это сделать. (Я предупреждаю вас: я написал это сейчас, не задумываясь о том, насколько это разумно. Как вы решили реализовать эту функциональность, вероятно, будет совсем иначе. В любом случае, это должно по крайней мере дать вам общее представление о том, что вам нужно do.)

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(); 
+0

Аналогичный, но более короткий подход должен был бы использовать 'WebClient.OpenRead'. –

+0

@Fredrik: Ницца, не знал об этом. Идет, чтобы показать, что есть почти всегда более чем один способ кошки кошки. –

+0

Ребята, эти методы, кажется, не в System.Net для silverlight, никаких подсказок .... 'request.GetRespone())' или 'WebClient.OpenRead' Я не могу их использовать – VoodooChild

4

Ответ Дэн - хороший, хотя вы запрашиваете локальный адрес. Это файл, к которому вы можете получить доступ из файловой системы? Если да, то я думаю, что вы должны быть в состоянии просто передать в FileStream:

FileStream stream = new FileStream(@"\path\to\file", FileMode.Open); 
+0

Похоже, путь localhost был всего лишь примером - он, скорее всего, захочет загрузить изображения из Интернета и управлять ими локально. Не то, чтобы я когда-либо делал такие вещи> _> – JustLoren

+0

Хороший улов на части локального хоста; Я даже не заметил. –

+0

Когда я меняю его на локальную файловую систему, я получаю операцию «Файл не разрешен». Доступ к пути «../images/Icons/thumb.gif» отрицается. 'В FileStream ... любые подсказки – VoodooChild

Смежные вопросы