當前位置:編程學習大全網 - 源碼下載 - ASP.NET 網站中的***享代碼文件夾

ASP.NET 網站中的***享代碼文件夾

網站中的***享代碼文件夾 如果您的 Web 應用程序包括要在多個頁之間***享的代碼 您可以將代碼保存在 Web 應用程序根目錄下的兩個特殊文件夾(Bin 文件夾和 App_Code 文件夾)中的某個文件夾中 當您創建這些文件夾並在其中存儲特定類型的文件時 ASP NET 將使用特殊方式處理這些文件 Bin 文件夾 可以在 Bin 文件夾中存儲編譯的程序集 並且 Web 應用程序任意處的其他代碼(如頁代碼)會自動引用該文件夾 典型的示例是您為自定義類編譯好的代碼 您可以將編譯後的程序集復制到 Web 應用程序的 Bin 文件夾中 這樣所有頁都可以使用這個類 Bin 文件夾中的程序集無需註冊 只要 dll 文件存在於 Bin 文件夾中 ASP NET 就可以識別它 如果您更改了 dll 文件 並將它的新版本寫入到了 Bin 文件夾中 則 ASP NET 會檢測到更新 並對隨後的新頁請求使用新版本的 dll 文件 Bin 文件夾的安全性 將編譯後的程序集放入 Bin 文件夾中會帶來安全風險 如果是您自己編寫和編譯的代碼 那麽您了解代碼的功能 但是 您必須像對待任何可執行代碼壹樣來對待 Bin 文件夾中已編譯的代碼 在完成代碼測試並確信已了解代碼功能之前 要對已編譯的代碼保持謹慎的態度 請註意以下安全方面的知識 這些知識與是否將已編譯的代碼放入 Bin 文件夾有關 Bin 文件夾中程序集的作用範圍為當前應用程序 因此 它們無法訪問當前 Web 應用程序之外的資源或調用當前 Web 應用程序之外的代碼 運行時 程序集的訪問級別由本地計算機上指定的信任級別確定 有關更多信息 請參見 ASP NET 信任級別和策略文件 如果您使用了諸如 Visual Studio 這樣的設計器 那麽 Bin 文件夾中的代碼運行所在的上下文與運行時不同 例如 代碼可能以完全信任狀態運行 App_Code 文件夾 可以在 App_Code 文件夾中存儲源代碼 在運行時將會自動對這些代碼進行編譯 Web 應用程序中的其他任何代碼都可以訪問產生的程序集 因此 App_Code 文件夾的工作方式與 Bin 文件夾很類似 不同之處是您可以在其中存儲源代碼而非已編譯的代碼 App_Code 文件夾及其在 ASP NET Web 應用程序中的特殊地位使您可以創建自定義類和其他僅源代碼文件 並在 Web 應用程序中使用它們而不必單獨對它們進行編譯 App_Code 文件夾可以包含以傳統類文件(即帶有 vb cs 等擴展名的文件)的形式編寫的源代碼文件 但是 它也可以包含並非明確顯示出由某壹特定編程語言編寫的文件 例如 wsdl(Web 服務描述語言)文件和 xml 架構 ( xsd) 文件 ASP NET 可以將這些文件編譯成程序集 根據您的需要 App_Code 文件夾可以包含任意數量的文件和子文件夾 您可以采用任何您認為方便的方式組織源代碼 ASP NET 仍會將所有代碼編譯成單個程序集 並且 Web 應用程序任意處的其他代碼都可以訪問該程序集 註意 在 App_Code 文件夾中不允許使用用戶控件 這包括單文件用戶控件以及使用代碼隱藏模型的用戶控件 將用戶控件置於 App_Code 目錄中會導致不按用戶控件代碼所要求的順序對其進行編譯 因此是不允許的 請註意 不需要將用戶控件置於 App_Code 文件夾中 因為處於應用程序中任何位置的頁都已經可以使用這些控件 推斷 App_Code 文件夾的編程語言 App_Code 文件夾並未顯式標記為包含以任何壹種編程語言編寫的文件 相反 ASP NET 是根據 App_Code 文件夾所包含的文件來推斷應為 App_Code 文件夾調用哪壹種編譯器 如果 App_Code 文件夾包含 vb 文件 則 ASP NET 使用 Visual Basic 編譯器 如果包含 cs 文件 則 ASP NET 使用 C# 編譯器 以此類推 如果 App_Code 文件夾只包含並未明確表明編程語言的文件(如 wsdl 文件) 則 ASP NET 將使用 Web 應用程序的默認編譯器 默認編譯器在 Web 應用程序或計算機配置文件的 pilation 元素中確定 在 App_Code 文件夾中使用多種編程語言 因為 App_Code 文件夾中的源代碼要編譯成單個程序集 所以 App_Code 文件夾中的所有文件必須使用相同的編程語言編寫 例如 App_Code 文件夾不能同時包含采用 Visual Basic 和 C# 編寫的源代碼 但是 您可以對 Web 應用程序進行配置 使其將 App_Code 文件夾的子文件夾作為獨立的可編譯單元處理 這樣 每壹個文件夾就可以包含以不同編程語言編寫的源代碼 通過在 nfig 文件的 codeSubDirectories 元素中創建壹個 pilation 元素 然後添加壹個對子文件夾的引用 即可指定該配置 下面的示例闡釋如何對名為 VBCode 和 CSCode 的子文件夾進行配置 使其編譯成不同的程序集 復制代碼 <pilation debug= false > <codeSubDirectories> <add directoryName= VBCode /> <add directoryName= CSCode /> </codeSubDirectories> </pilation>對 VBCode 和 CSCode 子文件夾的引用並不需要包括任何有關子文件夾中所包含的編程語言的信息 就像對待 App_Code 文件夾本身壹樣 ASP NET 會根據子文件夾中的文件來推斷要使用的編譯器 App_Code 文件夾的安全性 App_Code 文件夾中的代碼存在的安全問題基本上與 Bin 文件夾中的代碼存在的安全問題相同 代碼都會在運行時編譯成程序集 比 Bin 文件夾要好壹些的是 您可以閱讀 App_Code 文件夾中文件的源代碼 但是 如果您不能完全理解代碼 仍然會存在安全風險 因此 對待 App_Code 文件夾中的源代碼的態度必須像對待基於同樣的源代碼生成的已編譯代碼壹樣謹慎 lishixinzhi/Article/program/net/201311/13410

  • 上一篇:請問學習在linux環境下編程是怎麽循序漸進的?本科學的計算機科學與技術(軟件方向),偏軟
  • 下一篇:怎麽轉發公眾號的文章
  • copyright 2024編程學習大全網