我正在开展一个性能非常重要的项目,我想永久禁用AutoEventWireup。问题在于页面和控制指令覆盖了web.config中的设置。由于此项目中将有许多协作者,因此在创建新页面和控件时不可能期望每个人都禁用它(默认情况下这是真的)。 是否有可能以某种方式强制执行此规则?
我希望以与使用ViewState类似的方式解决此问题 - 在所有新页面继承的基页中以编程方式将EnableViewState设置为false。但似乎没有相应的AutoEventWireup。
答案 0 :(得分:3)
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;
}
}
}
答案 1 :(得分:0)
为要禁用这些属性的每个开箱即创建自己的控件集。然后将继承版本中的两个控件设置为readonly。