gpt4 book ai didi

c# - 第一次请求 default.aspx 页面时会发生什么?

转载 作者:行者123 更新时间:2023-11-30 14:16:41 25 4
gpt4 key购买 nike

第一次请求 default.aspx 页面时会发生什么?

.net 是纯粹的面向对象框架。

_default 是一个扩展 Page 的类。

没有实例化,就不能调用Pre-Init,Init,Load。那么_default类是如何实例化的呢?谁对此负责?

我想知道非常详细的技术步骤?

请澄清!

最佳答案

ASP.Net 框架识别请求是针对页面 default.aspx 并检查相应 .aspx 文件的标记 - 使用它生成基于该标记的类。该类的基类在 @Page 指令中标识:

<%@ Page ... Inherits="WebApplication1._Default" %>

然后它创建该生成的 类型的实例 - 该类型继承自给定的基类,在本例中为 WebApplication1._Default

ASP.Net 框架通常(从来没有?)直接创建“代码隐藏”类的实例。

您可以通过调试一个简单的 Web 应用程序亲眼看到这一点:

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// default_asp NOT _Default as you might expect
string typeName = this.GetType().Name;
}
}

这解释了为什么只需要将事件处理程序标记为 protected 而不是公共(public)。

如果您真的热衷于使用 this.GetType().Assembly.CodeBase 获取生成的程序集的路径,请复制该文件并检查生成的类,例如 IL Spy .

关于c# - 第一次请求 default.aspx 页面时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7109963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com