[转]Curstom WebControl:将静态文件编译进dll (WebResource)

编程入门 行业动态 更新时间:2024-10-27 23:30:44

[转]Curstom WebControl:将<a href=https://www.elefans.com/category/jswz/34/1771395.html style=静态文件编译进dll (WebResource)"/>

[转]Curstom WebControl:将静态文件编译进dll (WebResource)

摘自:虫虫的垃圾箱 .html

做自定义服务器控件的时候常需要将静态文件编译进一个dll中。今天尝试了一下,做个记录,免得忘了。

1,资源文件的添加
首先在Curstom WebControl的工程里添加一个文件夹,名字任意,一般叫做 Resources。把所有想要编译的资源统统拖到这个文件夹里去。
将该文件夹里所有文件的 Build Action 属性修改为 Embedded Resource.
在 AssemblyInfo.cs 里,将所有的文件编译信息添加进去,写法如下:
    [assembly: WebResource("ResourceTest.Resources.Icon.bmp","image/bmp")]
     (别忘了在 AssemblyInfo.cs 文件头部 using System.Web.UI;)
ResourceTest.Resources.Icon.bmp 就是这个文件的路径,ResourceTest是这个工程的namespace,Resources是那个文件夹,Icon.bmp就是文件名。
image/bmp 是资源文件的MIME属性, js文件为 text/javascript ,html文件是 text/html ,gif为 image/gif 等等。
这时编译工程,资源就能被编译到dll里去了。

2,资源文件的使用
资源文件使用起来也是很方便的,一般通过以下方法获得资源文件的Url:
              string url = Page.ClientScript.GetWebResourceUrl(this.GetType(), "ResourceTest.Resources.Icon.bmp");
获得的url一般是这样:
/WebAppName/WebResource.axd?d=DuWo...SdnEciZx0&t=63....203
其实资源文件就是通过一个处理WebResource.axd的HttpHandler获取的。

顺便写一下服务器控件里注册js文件的代码:
         protected override void OnLoad(EventArgs e)
          {
              Type t = this.GetType();
              string url = Page.ClientScript.GetWebResourceUrl(t, SCRIPTFILE);
              if (!Page.ClientScript.IsClientScriptIncludeRegistered(SCRIPTFILE))
              {
                  Page.ClientScript.RegisterClientScriptInclude(SCRIPTFILE, url);
              }
          }

SCRIPTFILE 就是js文件的资源路径 是一个只读的字符串常量。

 

更多推荐

[转]Curstom WebControl:将静态文件编译进dll (WebResource)

本文发布于:2024-02-26 20:18:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1703762.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:静态   文件   WebControl   Curstom   dll

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!