为什么将aspx代码隐藏文件声明为部分类?

时间:2009-08-25 18:51:39

标签: asp.net code-behind partial-classes

为什么aspx页面的部分类背后的代码?

5 个答案:

答案 0 :(得分:12)

我会引用您的MSDN Page(ASP.NET页面类概述)。

  

编译页面时,ASP.NET   生成基于的部分类   .aspx文件;这个班是偏袒的   代码隐藏类文件的类。   生成的部分类文件   包含页面的声明   控制。这个部分类启用   你的代码隐藏文件用作   没有完整课程的一部分   要求您声明控件   明确。

见此图表:

alt text http://img30.imageshack.us/img30/7692/msdnchart.gif

这样你就有一个包含逻辑的类和一个包含设计器东西的类。在编译时,它是作为一个整体生成的。

答案 1 :(得分:4)

因为该类的其他部分(设计师的东西)对开发人员隐藏了

例如,而不是这个

public MyBasePage : System.Web.UI.Page
{
    ...
    protected System.Web.UI.Label lblName;

    protected void Page_Load(object sender, EventArgs e)
    {
    }
    ...
}

ASP.NET在不同的物理文件中创建这些声明,留下这个

public partial class MyBasePage : System.Web.UI.Page
{
    ...

    protected void Page_Load(object sender, EventArgs e)
    {
    }

    ...
}

更多信息:

答案 2 :(得分:1)

Partial声明允许您在其他文件中编写代码 - 只需将其放在同一名称空间中并将该类命名为相同,并将它们视为在同一文件中。它非常适合为生成的文件添加功能。我经常使用它来为我的LinqToSql对象添加函数/属性。

答案 3 :(得分:1)

部分文件的另一个原因是处理某些类定义是由工具生成的情况(并且可能在某些时候重新生成),而其余的类是由您实现的。

在这种情况下,不使用分部类会导致代码被覆盖,或者生成过程难以完成其工作(如果它可以完成)。

使用部分类,可以轻松地重新生成生成的代码,而无需触及代码。

另一个很好的例子是在LINQ-to-SQL中使用DataContext类时:真正聪明的东西被生成到一组部分类文件中,你可以在另一个部分类中提供实现 - 用于验证等等,安全地知道再生不会破坏你的工作。

答案 4 :(得分:0)

Aspx.cs使用PARTIAL类,因为在此类中访问的控件(例如TextBox,GridView)在.Aspx文件中声明(即物理上的另一个文件),因此一个类包含控制声明(.aspx文件)和另一个基于业务逻辑的类on .aspx文件上声明的控件。当他们被编译时,被视为整个单一的课程。