成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

ASP.NET虛擬文件系統(tǒng)的作用

這篇文章主要講解了“ASP.NET虛擬文件系統(tǒng)的作用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“ASP.NET虛擬文件系統(tǒng)的作用”吧!

創(chuàng)新互聯(lián)成立于2013年,先為陜州等服務(wù)建站,陜州等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為陜州企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

具體實現(xiàn)步驟如下:

一、開發(fā)web用戶控件

這一步和以前的開發(fā)沒有區(qū)別。
1、首先新建一個web應(yīng)用程序(需要VS2005 sp1支持)
2、然后在里面開發(fā)幾個web用戶控件
3、在ascx文件上右鍵-〉屬性-〉生成操作選擇嵌入的資源
4、生成dll就可以了(dll的名字為:Test.Control.dll,后面會用到)

二、開發(fā)一個虛擬文件系統(tǒng)提供類

這一步是最重要的一步。

具體思路就是:在系統(tǒng)中注冊這個類,然后在每訪問一個文件/資源的時候會自動調(diào)用這個類,在這個類中判斷文件的路徑是否是我們定義的,如果是就用我們的邏輯來處理,即從dll中取出資源。

首先把類的代碼貼出來,我想可能許多人應(yīng)該和我一樣,喜歡直接先看代碼:

  1. DllVirtualPathProvider  

  2. public class DllVirtualPathProvider : System.Web.Hosting.VirtualPathProvider  

  3. {  

  4. public DllVirtualPathProvider()  

  5. {  

  6. }  

  7.  

  8. public override string CombineVirtualPaths(string basePath, string relativePath)  

  9. {  

  10. if (IsAppResourcePath(basePath))  

  11. {  

  12. return null;    

  13. }  

  14.  

  15. return Previous.CombineVirtualPaths(basePath, relativePath);    

  16. }  

  17.  

  18. public override System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)  

  19. {  

  20. return Previous.CreateObjRef(requestedType);    

  21. }  

  22.  

  23. public override bool DirectoryExists(string virtualDir)  

  24. {  

  25. if (IsAppResourcePath(virtualDir))  

  26. {  

  27. return true;    

  28. }  

  29. else  

  30. {  

  31. return Previous.DirectoryExists(virtualDir);    

  32. }  

  33.  

  34. }  

  35.  

  36. public override string GetCacheKey(string virtualPath)  

  37. {  

  38. if (IsAppResourcePath(virtualPath))  

  39. {  

  40. return null;    

  41. }  

  42. else  

  43. {  

  44. return Previous.GetCacheKey(virtualPath);    

  45. }  

  46. }  

  47.  

  48. public override string GetFileHash(string virtualPath, 
    IEnumerable virtualPathDependencies)  

  49. {  

  50. if (IsAppResourcePath(virtualPath))  

  51. {  

  52. return null;    

  53. }  

  54. else  

  55. {  

  56. return Previous.GetFileHash(virtualPath, virtualPathDependencies);    

  57. }  

  58. }  

  59.  

  60. private bool IsAppResourcePath(string virtualPath)  

  61. {  

  62. String checkPath = VirtualPathUtility.ToAppRelative(virtualPath);    

  63. return checkPath.StartsWith("~/MyUserControl/Test.Control.dll/", 
    StringComparison.InvariantCultureIgnoreCase);    

  64. }  

  65.  

  66. public override bool FileExists(string virtualPath)  

  67. {  

  68. return (IsAppResourcePath(virtualPath) || Previous.FileExists(virtualPath));    

  69. }  

  70.  

  71. public override VirtualFile GetFile(string virtualPath)  

  72. {  

  73. if (IsAppResourcePath(virtualPath))  

  74. {  

  75. return new AssemblyResourceVirtualFile(virtualPath);    

  76. }  

  77. else  

  78. {  

  79. return Previous.GetFile(virtualPath);    

  80. }  

  81. }  

  82.  

  83. public override System.Web.Caching.CacheDependency GetCacheDependency(string virtualPath,  

  84. System.Collections.IEnumerable virtualPathDependencies, DateTime utcStart)  

  85. {  

  86. if (IsAppResourcePath(virtualPath))  

  87. {  

  88. string path = HttpRuntime.AppDomainAppPath + virtualPath.Substring(1);    

  89.  

  90. return new System.Web.Caching.CacheDependency(path);    

  91. }  

  92. else  

  93. {  

  94. return Previous.GetCacheDependency(virtualPath, virtualPathDependencies, utcStart);    

  95. }  

  96. }  

感謝各位的閱讀,以上就是“ASP.NET虛擬文件系統(tǒng)的作用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對ASP.NET虛擬文件系統(tǒng)的作用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

新聞標(biāo)題:ASP.NET虛擬文件系統(tǒng)的作用
網(wǎng)站URL:http://jinyejixie.com/article30/gpgeso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、全網(wǎng)營銷推廣品牌網(wǎng)站制作、微信小程序、網(wǎng)站建設(shè)、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
洛川县| 广汉市| 黔江区| 巴林右旗| 车险| 成武县| 桐梓县| 西吉县| 广德县| 陆川县| 当雄县| 临西县| 塔城市| 邻水| 宜阳县| 怀化市| 榕江县| 玉环县| 克东县| 板桥市| 四川省| 高安市| 临安市| 东乡族自治县| 遂平县| 印江| 新邵县| 神木县| 五常市| 长葛市| 榆林市| 温泉县| 邯郸县| 土默特右旗| 成武县| 涡阳县| 芜湖县| 清河县| 新河县| 临泽县| 建水县|