2012-12-05 19 views
5

của tôi, tôi có một điều khiển người dùng trên một trong những trang web của tôi và tôi nhận được dưới đây lỗi trên trang nàySystem.Web.UI.Control.LoadRecursive() được gọi là có thể lần trong điều khiển người dùng hoặc trang

Object reference not set to an instance of an object. 

tôi đã giải quyết vấn đề này rất dễ dàng nhưng tôi đã tìm thấy điều gì đó lạ trong dấu vết ngăn xếp của lỗi này.

Khi tôi kiểm tra stack trace này như dưới đây

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) 

Nó không phải là stacktrace hoàn chỉnh nhưng một phần của nó. Tôi muốn biết vai trò của chức năng này là gì "System.Web.UI.Control.LoadRecursive()". Nó được gọi là 11 thời gian và tôi sợ rằng điều này có thể gây ra vấn đề hiệu suất trong ứng dụng của tôi. Tôi nghĩ rằng chức năng này được gọi là bởi vì tôi đang sử dụng điều khiển người dùng. Tôi đang sử dụng loại điều khiển người dùng này ở nhiều nơi trong ứng dụng của mình.

Hãy cho tôi biết nếu có ai biết về điều này.

Trả lời

2

LoadRecursive() gọi điện đến phương thức OnLoad() của kiểm soát hiện tại và sau đó sẽ đệ quy gọi LoadRecursive() trên tất cả các điều khiển con của nó, bao gồm cả các điều khiển được lồng trong html.

Vì vậy, bạn sẽ có 1 LoadRecursive() cuộc gọi trên ngăn xếp cho mọi kiểm soát cha mẹ đã được chuyển qua để đến quyền kiểm soát tùy chỉnh của bạn. Điều khiển tổng hợp có thể có nhiều trong một điều mà sẽ thêm vào chiều sâu.

Nó không nhất thiết phải là một vấn đề hiệu suất. Chỉ là một dấu hiệu của độ sâu làm tổ.

Các vấn đề liên quan