“代码分离”在技术实现上其实就是使用了“继承”这样的技术,例如我们在普通的aspx页面中会经常看到以下的代码:
<%@ Page language="c#" Codebehind="jstest.aspx.cs" AutoEventWireup="false" Inherits="WebAppCSharp.jstest" %>
其中“Inherits”关键字就表明了该aspx页面继承了“jstest”这个类,而“Codebehind”关键字表明了该页面和“jstest.aspx.cs”这个cs文件是相关联的。这也就是为什么我们在ASP.NET应用程序中所有的控件在cs文件中的访问修饰符都声明为protected的原因了。当我们去访问一个aspx页面时,此时就会动态的产生这个aspx页面的新类(我们可以在framework文件夹下的Temporary ASP.NET Files中找到一个随机命名的cs文件,这个文件就是我们当前页面产生的新类,其中我们就可以看到如下代码:
public class jstest_aspx : WebAppCSharp.jstest, System.Web.SessionState.IRequiresSessionState
也就是说,当前的aspx页面继承了代码分离中的cs文件中声明的类,从而使得我们在开发时候获得“代码分离”这种技术带给我们的方便和高效率。