谁在页面中呼叫第一个 OnLoad 调用

本文关键字:第一个 OnLoad 调用 呼叫 | 更新日期: 2023-09-27 18:03:06

asp.net 3.5我一直坐在反射器旁边找出 - 谁是第一个(!(调用 OnLoad 方法,该方法为所有订阅者激活事件我没有找到它。

我不是在谈论AutoEvenntWireup的情况(这里无关紧要(,因为这个阶段发生在以后......

我说的是:谁首先激活 Control.OnLoad 方法?我想在反射器中看到它,并可以找到激活!我只能找到方法签名

谁在页面中呼叫第一个 OnLoad 调用

Page.ProcessRequestMain()调用Page.LoadRecursive(),而又调用Page.OnLoad()

相关代码(用ILSpy反汇编(是:

internal virtual void LoadRecursive()
{
    if (this._controlState < ControlState.Loaded) {
        if (this._adapter != null) {
            this._adapter.OnLoad(EventArgs.Empty);
        } else {
            this.OnLoad(EventArgs.Empty);  // ** Here. **
        }
    }
    if (this._occasionalFields != null
        && this._occasionalFields.Controls != null) {
        string collectionReadOnly
            = this._occasionalFields.Controls.SetCollectionReadOnly(
                "Parent_collections_readonly");
        int count = this._occasionalFields.Controls.Count;
        for (int i = 0; i < count; i++) {
            this._occasionalFields.Controls[i].LoadRecursive();
        }
        this._occasionalFields.Controls.SetCollectionReadOnly(
            collectionReadOnly);
    }
    if (this._controlState < ControlState.Loaded) {
        this._controlState = ControlState.Loaded;
    }
}