Web Site項目和ASP.NET Web Application中App_Code文件夾的作用

   我現在要建一個ASP.NET的網站了,不難吧,開始動手。如下圖:

[轉載]Web <wbr>Site項目和ASP.NET <wbr>Web <wbr>Application中Ap


    這種方法建立WebSite項目,使用過的開發者都知道,如果需要新建一個類,例如DataBase.cs。此類只服務於web頁面,不適於放入網站自身類庫中,因此希望其獨立存在於類庫之外,只是用於在web應用程序中被web頁面調用。這樣一來此類最好不要通過形成dll文件,並將其放入bin文件夾以供web頁面調用。但是如果將DataBase.cs的源文件放在web網站根目錄下面後,在web頁面卻無法調用該類。但如果通過“右鍵項目-〉添加-〉添加ASP.NET文件夾” 這種方式添加一個App_Code文件夾,如下圖:

 

[轉載]Web <wbr>Site項目和ASP.NET <wbr>Web <wbr>Application中Ap

    把DataBase.cs放到這個文件夾中,就可以直接調用了,爲什麼呢??
 
   app_code文件夾中可以直接存儲源代碼,Web Site在運行時將會自動對這些代碼進行編譯。Web應用程序中的其他任何代碼都可以訪問其產生的程序集。因此,App_Code文件夾的工作方式與 Bin文件夾很類似,不同之處是你可以在其中存儲源代碼而非已編譯的代碼。App_Code文件夾及其在 ASP.NET Web應用程序中的特殊地位使您可以創建自定義類和其他僅源代碼文件,並在 Web應用程序中使用它們而不必單獨對它們進行編譯。
   那好吧,我可以直接使用源代碼文件,而不需要調用DLL文件了,貌似很不錯,省了不少事兒。
 
   總結一下app_code文件夾和bin文件夾的區別:
   1:APP_Code文件夾存儲的是類的源文件;bin文件夾裏存儲的是類庫的.dll文件,是已經編譯過的類庫。
   2:使用APP_Code文件夾中類的時候,不需要在頁面上添加任何顯示的指令或聲明來創建依賴性;而要使用bin文件夾中的類時,則必須在頁面上先引用對應的命名空間才能使用。

   接下來呢,要乾點什麼,Web Site貌似簡單了一些,來個多層架構的ASP.NET WebApplication怎麼樣,說幹就幹。也記的先把APP_Code文件夾建好,省的不能調用,如下圖:

[轉載]Web <wbr>Site項目和ASP.NET <wbr>Web <wbr>Application中Ap


   問題出來了,怎麼居然沒有APP_code這個文件夾呢,那就新建立一個普通文件夾,起這樣一個名字吧,看起來是完全一樣的,然後建立DataBase.cs類,應該可以使用吧。添加文件代碼,如下圖:
 

[轉載]Web <wbr>Site項目和ASP.NET <wbr>Web <wbr>Application中Ap

   報錯信息:“The type or namespace name 'DataBase' could not be found (areyou missing a using directive or an assembly reference”;

   崩潰了,爲什麼不行呢,冷靜一下,很明顯在“APP_CODE文件夾中,WebSite項目運行時會被自動編譯的代碼”在這個項目裏並沒有被編譯,因而現在的DataBase.cs還僅僅是一個文件,他並不會在項目執行時被編譯,也不會被其他程序文件所使用,所以出現這個錯誤就正常了,那好吧,手動修改吧。
 
   選中你的類文件,在 Properties -〉Build Action中 -〉默認 "Content" 改爲 "Compile"就可以了,如下圖:
 

[轉載]Web <wbr>Site項目和ASP.NET <wbr>Web <wbr>Application中Ap



完美解決,剩下的事情,繼續吧。
發佈了21 篇原創文章 · 獲贊 48 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章