在System.Windows.Forms.WebBrowser中使用res://协议

时间:2011-10-19 20:35:36

标签: c# .net internet-explorer browser webbrowser-control

我正在尝试使用位于dll中的资源(html文件)。使用WinForms WebBrowser,当我导航到该文件时,没有任何反应,而包含AxSHDocVw.dll和SHDocVw.dll和AxWebBrowser,它可以工作。 WinForms WebBrowser控件是以某种方式限制还是什么?我可以让它运行res://?

2 个答案:

答案 0 :(得分:2)

在此处查看我的帖子:https://stackoverflow.com/a/15672462/1413201

基本要点是代码文件中有两种类型的资源。您需要包含C样式资源脚本才能使用res协议。导航错误可能在WebBrowser控件中关闭,因此您不会看到错误。

您可以使用带有IE的res协议来测试资源是否实际位于文件中,而C样式资源编辑器只是用于双重检查。

答案 1 :(得分:1)

我认为,出于安全原因,WinForms的WebBrowser控件不处理res://链接。这将使某人很容易访问您可能不想访问的DLL中包含的资源。

如果您想自己实现该功能,那么我建议您查看Assembly类及其用法。将res:///解析到DLL路径,加载程序集,搜索给定资源并为WebBrowser控件返回该文件应该不难。