程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 我對App_Code的理解

我對App_Code的理解

編輯:C#入門知識

個人對App_Code的理解:
建立全站的通用類,打開網站時即時編譯App_Code文件夾下面的.cs文件。
在App_Code文件夾下面的.cs文件中的類,在每個文件裡都可以調用。。

個人對namespace的理解:
比如:在App_Code/a.cs中有namespace testA
在網站的根目錄下的default.aspx.cs文件中也有namespace testA,那麼在此文件中就可以直接調用App_Code/a.cs 中的類名。如果在網站的根目錄下的default.aspx.cs文件中是namespace testB那麼想要使用App_Code/a.cs中有 namespace testA的類名就必須使用以下引用:using testA;

以下是網上摘錄的關於App_Code 目錄的文章:

ASP.NET 2.0  引入了 App_Code 目錄,該目錄可以包含一些獨立文件,這些文件包含要在應用程序中的多個頁之間共享的代碼。與 ASP.NET 1.x 不同 (1.x 需要將這些文件預編譯到 Bin 目錄),App_Code 目錄中的所有代碼文件都將在運行時動態編譯,然後提供給應用程序。可以在  App_Code 目錄下放置多種語言的文件,前提是將這些文件劃分到各子目錄中(在 Web.config 中用特定語言注冊這些子目錄)。默認情況 下,App_Code 目錄只能包含同一種語言的文件。但可以將 App_Code 目錄劃分為若干子目錄(每個子目錄包含同一語言的文件)以便可以在  App_Code 目錄下包含多種語言。為此,需要在應用程序的 Web.config 文件中注冊每個子目錄。 
<configuration>
  <system.web>
    <compilation>
      <codeSubDirectories>
        <add directoryName="Subdirectory"/>
      </codeSubDirectories>
    </compilation>
  </system.web>
</configuration>

以上是關於 App_Code 的官方描述。描述中提到“運行時動態編譯”,為了弄清楚 App_Code 目錄下的文件在何時編譯,於是寫了段程序進行測試
TestClass.cs
public class TestClass
{
    public static int m_Count = 0;
 public TestClass()
 {
        m_Count++;
 }
    public string GetMessage(string str)
    {
        return "Hello : " + str;
    }
 }
ASPX 頁中的代碼
<%
    TestClass t = new TestClass();%>
<%=t.GetMessage("SoftDiyer")%><br>
m_Count=<%=TestClass.m_Count%>
我在兩個 ASPX (Test1.aspx 和 Test2.aspx)頁中放了這些代碼,先訪 問 Test1.aspx  , m_Count=1;  然後再訪問 Test2.aspx m_Count=2;修改 TestClass.cs 中的內容重新訪問 Test2.aspx , m_Count =1;由此看出 .net 框架在監視 App_Code 目錄,當目錄中的文件發生變化時,觸發 .net 的動態編譯。

App_Code 、 Asp 的 Include 、.Net 中的 Import 的比較:
App_Code 與asp 中的 include 不同:App_Code 采用編譯機制而 asp 中的 include 采用的是解釋的機制 ,表面上看實現的目的和方式有點類似,但是處理方式完全不同。使用代碼目錄方式使程序變的更高效更容易維護。
App_Code  和 Import 的不同:從調用代碼看區別在於,使用 Import 時必須在文件中使用 Import 語句,而代碼目錄方式不需要。使用  Import 語句一般是使用已經編譯好的類,在運行之前已經編譯好了。而代碼目錄則在運行時編譯,這樣就增加了程序的靈活性。

    

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