C#WebBrowser HTML,引用脚本和图像

Roa*_*Fan 6 .net c# resources webserver href

我正在使用WebBrowser控件编写一个C#应用程序,我希望我显示的所有内容都来自嵌入式资源 - 而不是静态本地文件,而不是远程文件.

将控件的初始文本设置为嵌入式HTML文件非常适合此帖子启发的代码:

browser.DocumentText=loadResourceText("myapp.index.html");

private string loadResourceText(string name)
{
    Assembly assembly = Assembly.GetExecutingAssembly();
    Stream stream = assembly.GetManifestResourceStream(name);
    StreamReader streamReader = new StreamReader(stream);
    String myText = streamReader.ReadToEnd();
    return myText;
}
Run Code Online (Sandbox Code Playgroud)

就像那样,HTML中引用的文件 - javascript,图像<img src="whatever.png"/>等等都不起作用.我在这里这里找到了类似的问题,但两者都没有问我到底是什么意思,即在exe中引用嵌入式资源,而不是文件.

我尝试res://...并使用了一个<base href='..."但似乎都没有工作(虽然我可能没有做对).

也许(根据我自己对这个问题的建议),使用一个小的嵌入式C#网络服务器是唯一的方法......但是我会想到有一些技巧可以实现这一目标吗?

谢谢!

Mar*_*ell 1

我可以看到三种方法来实现这一目标:

1:将所需的文件写入临时区域中的平面文件,导航WebBrowser到html文件,并在页面加载后删除它们

2:正如你所说,嵌入式网络服务器 - 她可能HttpListener- 但请注意,这使用 HTTP.SYS,因此需要管理员权限(或者你需要预先打开端口

3:与 1 类似,但使用命名管道服务器以避免写入文件

不得不说,第一种就简单很多,而且需要零配置。