2012-02-18 18 views
5

Estoy trabajando en un proyecto donde el rendimiento es realmente importante y me gustaría deshabilitar AutoEventWireup de forma permanente. El problema está en el hecho de que las directivas de página y control anulan las configuraciones de web.config. Como habrá muchos colaboradores en este proyecto, será imposible esperar que todos lo desactiven al crear nuevas páginas y controles (y es cierto por defecto). ¿Es posible de alguna manera hacer cumplir esta regla?Desactive permanentemente AutoEventWireup

Espero resolver esto de manera similar a como lo hice con el ViewState - estableciendo EnableViewState en falso en la página base que todas las páginas nuevas heredan. Pero parece que no hay un equivalente para AutoEventWireup.

Respuesta

3

Anulación 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

De la documentación: "Esta propiedad es compatible con la infraestructura de .NET Framework y no está destinado a ser utilizado desde el código." ¿Puedes explicar lo que estás haciendo? :) – IrishChieftain

+0

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

+1

¡Excelente! Esto es exactamente lo que he estado buscando. Gracias – loodakrawa

0

Crea tu propio conjunto de controles para cada uno de los que deseas deshabilitar para estas propiedades. A continuación, configure los dos controles en las versiones heredadas para que sean de solo lectura.

Cuestiones relacionadas