Это один из способов. Я действительно не знаю, лучший ли это или нет, но он работает.
// 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();
Аналогичный, но более короткий подход должен был бы использовать 'WebClient.OpenRead'. –
@Fredrik: Ницца, не знал об этом. Идет, чтобы показать, что есть почти всегда более чем один способ кошки кошки. –
Ребята, эти методы, кажется, не в System.Net для silverlight, никаких подсказок .... 'request.GetRespone())' или 'WebClient.OpenRead' Я не могу их использовать – VoodooChild