zoukankan      html  css  js  c++  java
  • 我对App_Code的理解

    个人对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 语句一般是使用已经编译好的类,在运行之前已经编译好了。而代码目录则在运行时编译,这样就增加了程序的灵活性。
  • 相关阅读:
    第一章:帝国的余晖 AT&T公司
    个人最终总结——2(完成了第3个问题)
    个人最终总结——1(完成了前面2个问题)
    week9:个人博客作业
    week8:个人博客作业
    week7:个人博客作业
    week6:个人博客作业
    将博客搬至CSDN
    top命令
    java并发编程的艺术-第四章笔记
  • 原文地址:https://www.cnblogs.com/top5/p/1614132.html
Copyright © 2011-2022 走看看