程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 在App_Code中使用多種語言

在App_Code中使用多種語言

編輯:.NET實例教程
在App_Code中使用多種語言

App_Code文件夾正好在Web應用程序根目錄下,其存儲所有應當作為應用程序的一部分動態編譯的類文件。這些類文件自 動鏈接到應用程序,而不需要在頁面中添加任何顯式指令或聲明來創建依賴性。App_Code文件夾中放置的類文件可以包含任何可識別的ASP.Net組件 ——自定義控件、輔助類、build提供程序、業務類、自定義提供程序、HTTP處理程序等。

  注意    在開發時,對App_Code文件夾的更改會導致整個應用程序重新編譯。對於大型項目,這可能不受歡迎,而且很耗時。為此,鼓勵大家將代碼進行模塊化處理 到不同的類庫中,按邏輯上相關的類集合進行組織。應用程序專用的輔助類大多應當放置在App_Code文件夾中。

App_Code文件夾中存放的所有類文件應當使用相同的語言。如果類文件使用兩種或多種語言編寫,則必須創建特定語言的子目錄,以包含用每種語言編寫的類。一旦根據語言組織這些類文件,就要在web.config文件中為每個子目錄添加一個設置:

<compilation>

<codeSubDirectorIEs>

<add directoryName="VBFolder" />

</codeSubDirectorIEs>

</compilation>

重要的是,特定語言的子目錄應在web.config文件中注冊,否則,不管它們屬於哪個文件夾,App_Code文件夾下 的所有文件將被編譯成一個單獨的程序集。上述配置腳本描述了這麼一種情況,即所有的C#文件都放在App_Code文件夾的根目錄下,而把幾個 Visual Basic .Net類文件移入VBFolder目錄中。如果<codeSubDirectorIEs>節中提到的目錄不存在,則會收到一個編譯錯誤提 示。

App_Code根文件夾中的文件被編譯成App_Code_xxx.dll程序集,其中xxx是隨機生成的字符序列。一個 給定子目錄中的文件將被編譯成一個名為App_SubCode_xxx_yyy.dll的動態創建的程序集,其中xxx指示子目錄的名稱,而yyy是一個 隨機字符序列。只有在應用程序根目錄中的web.config文件中進行了設置,<codeSubDirectorIEs>節才有效。

在App_Code目錄或任何其他子目錄中放置一個assemblyinfo.cs文件,可以創建一個強命名的程序集。顯然,如果該文件夾包含Visual Basic .Net文件,那麼將使用assemblyinfo.vb文件。程序集配置文件可以引用一個.snk文件來保存強名稱的密鑰。

 注意    給一個程序集設置一個強名稱,首先必須獲得一個公開/私有密鑰對。通過使用強名稱(Strong Name)工具(sn.exe),可以獲得這樣一個密鑰對。強名稱工具是我們可以在.Net Framework的安裝路徑中發現的SDK binary之一。密鑰對文件通常有一個.snk擴展名。可以將該文件保存到一個應用程序文件夾中,並在assemblyinfo.cs文件中引用它,如下所示:

      [assembly: AssemblyKeyFileAttribute(@"yourKeyPair.snk")]

注意,Visual Basic .Net是在包含Visual Studio Solution的目錄中尋找密鑰文件,而C#編譯器則在包含該binary的目錄中尋找密鑰文件。據此可知,用此屬性調整我們使用的路徑,或者把密鑰文件放在合適的文件夾中。

在隨後發生的任何重新生成中,程序集的名稱將發生變化。同時,老的AppDomain請求一結束,就刪除老的程序集。

App_Code文件夾並非只能包含類文件。特別是,它可以包含並能自動地處理代表數據架構的XSD文件。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved