Nik*_*aur 5 performance user-controls c#-4.0
我在我的一个页面上有一个用户控件,我在此页面上收到以下错误
Object reference not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)
我很容易解决这个问题,但是在这个错误的堆栈跟踪中发现了一些奇怪的东西.
当我检查堆栈跟踪时,这就像下面一样
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Run Code Online (Sandbox Code Playgroud)
它不是完整的堆栈跟踪,而是它的一部分.我想知道这个函数"System.Web.UI.Control.LoadRecursive()"的作用是什么.它被称为11次,我担心这可能会导致我的应用程序出现性能问题.我认为这个函数被调用因为我正在使用用户控件.我在我的应用程序的许多地方使用这种用户控件.
如果有人知道,请告诉我.
LoadRecursive()调用当前控件的OnLoad()方法,然后递归调用LoadRecursive()其所有子控件,包括嵌套在 html 中的控件。
LoadRecursive()因此,对于已传递到自定义控件的每个父控件,您将在堆栈上进行 1 次调用。复合控件可以多合一,这会增加深度。
这不一定是性能问题。只是嵌套深度的指示。