使用WebResource内嵌资源

From:http://blog.blueshop.com.tw/longer/archive/2007/01/03/53248.aspx
看ASP.NET的原始碼時,常會看到src=WebResource.axd?xxxxxxxxxx這樣的JS或圖片src,研究了一下,原來就是在寫成元件時,需要用到的文件比如js檔、css檔 或圖形,就可以使用這樣的方式內嵌至元件中,使用者不需另外複製這些檔案,這才恍然大悟。

之前寫的一些自訂控制項,總是要使用者自行複製js檔、css檔 或圖形到自己的目錄下,這幾天終於了解原來就是利用WebResource.axd來嵌入這些資料,迫不及待的練習寫了一個FreeTextBox延伸「插入程式碼」功能的元件,14個js檔、2個css檔、7個gif檔,使用者只要一個加入一個dll檔就搞定。真是相見恨晚,更有學不完的感覺,之前寫的元件,有空再找時間修正了。

網路上有一篇範例使用在 ASP . NET 2.0 Web 資源值得參考。

補充說明:
1.所有要作為WebResourc的文件,都必須在檔案上按「右鍵」/「屬性」,建置動作項目選「內嵌資源」
2.所有要作為WebResourc的文件,都必須在專案properties / AssemblyInfo.cs中作定義
如:[assembly: WebResource("命名空間.子資料夾.資源檔名稱", ContentType)]
[assembly: WebResource("FreeTextBoxExtend.images.csharp.gif", "image/gif")]
3.加入text/css link的方式,一樣可以內嵌在元件中,不需像範例中,使用者需另寫Code

Page page  =  (Page)HttpContext.Current.Handler;   
 
string [] rsname  =   new   string []  "TestPages.css""SyntaxHighlighter.css" } ;   
 
for  ( int  i  =   0 ; i  <  rsname.Length; i ++ )   
 
{   
   System.Web.UI.HtmlControls.HtmlLink myHtmlLink 
= new System.Web.UI.HtmlControls.HtmlLink();   
   myHtmlLink.Href 
= cs.GetWebResourceUrl(this.GetType(), "FreeTextBoxExtend.Styles." + rsname[i]);//取得在AssemblyInfo中的Resource   
   myHtmlLink.Attributes.Add("rel""stylesheet");   
   myHtmlLink.Attributes.Add(
"type""text/css");   
   page.Header.Controls.Add(myHtmlLink);   
 }
  



From:http://support.microsoft.com/kb/910442/zh-tw
使用在 ASP . NET 2.0 Web 資源

你可能感兴趣的:(使用WebResource内嵌资源)