c# - 从绝对路径获取流?

标签 c# silverlight stream uri

我有这个方法:

public RasImage Load(Stream 流);

如果我想加载一个像这样的 url:

string _url = "http://localhost/Application1/Images/Icons/hand.jpg";

如何将此 url 放入流中并将其传递到我的 load 方法中?

最佳答案

这是一种方法。我真的不知道这是不是最好的方法,但它确实有效。

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

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

更新:看起来在 Silverlight 中,WebRequest 类没有 GetResponse 方法;您别无选择,只能异步执行此操作。

下面是一些示例代码,说明您可以如何进行此操作。 (我警告你:我刚刚写了这篇文章,没有考虑它的合理性。你选择如何实现这个功能可能会完全不同。无论如何,这至少应该让你大致了解你需要什么做。)

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

关于c# - 从绝对路径获取流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3639379/

相关文章:

c# - 自托管 Web API 的正确方法是什么?

silverlight - 不能在 Silverlight 中使用 XDocument?

C++从istream读取int,检测溢出

c# - 流式传输到包中,打包到 WordDocument 中,然后再返回

java - 可以从流中读取带符号的字节吗?

c# - 如何识别活跃的子窗体并触发通用方法(每个子窗体中都存在)?

c# - 在 wpf C# 中删除数据网格行之前删除确认

c# - Windows Azure 网站中的自定义性能计数器

c# - 在 MultiScaleImage 上保持相对位置

c# - 如何在加载数据后显示我的 Silverlight 应用程序?