2012-02-18 42 views
5

Tôi đang làm việc trên một dự án có hiệu suất thực sự quan trọng và tôi muốn tắt vĩnh viễn AutoEventWireup. Vấn đề là trong thực tế là các trang và kiểm soát chỉ thị ghi đè lên các thiết lập từ web.config. Vì sẽ có nhiều cộng tác viên trong dự án này nên sẽ không thể mong đợi mọi người vô hiệu hóa nó khi tạo trang và điều khiển mới (và nó đúng theo mặc định). Có thể thực hiện bằng cách nào đó quy tắc này không?Vô hiệu hóa vĩnh viễn AutoEventWireup

Tôi hy vọng sẽ giải quyết vấn đề này theo cách tương tự như tôi đã làm với ViewState - đặt EnableViewState thành sai theo lập trình trong trang cơ sở mà tất cả các trang mới kế thừa. Nhưng có vẻ như không có tương đương với AutoEventWireup.

Trả lời

3

Override SupportAutoEvents

public class BasePage : System.Web.UI.Page 
{ 
    public BasePage() 
    { 
     this.Init += (_o, _e) => { 
      this.Load += (o, e) => { 
       Response.Write("in page handler"); 
      }; 
     }; 
    } 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     // this handler is NOT assigned to the Load event 
     Response.Write("assigned by ASP .Net handler");    
    } 
    protected sealed override bool SupportAutoEvents 
    { 
     get 
     { 
      return false; 
     } 
    } 
} 
+0

Từ các tài liệu: "Thuộc tính này hỗ trợ các cơ sở hạ tầng .NET Framework và không có ý định sẽ được sử dụng trực tiếp từ mã của bạn." Bạn có thể giải thích về những gì bạn đang làm không? :) – IrishChieftain

+0

I ILSpy (http://wiki.sharpdevelop.net/ILSpy.ashx). –

+1

Tuyệt vời! Đây chính xác là những gì tôi đang tìm kiếm. Thanx – loodakrawa

0

Tạo bộ điều khiển của riêng bạn cho từng loại hộp kiểm mà bạn muốn tắt các thuộc tính này. Sau đó, đặt hai điều khiển trong các phiên bản kế thừa thành chỉ đọc.

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