2012-02-18 12 views
5

Pracuję nad projektem, w którym wydajność jest naprawdę ważna i chciałbym wyłączyć na stałe AutoEventWireup. Problem polega na tym, że dyrektywy dotyczące stron i sterowania zastępują ustawienia z pliku web.config. Ponieważ będzie wielu współpracowników w tym projekcie, nie będzie można oczekiwać, że wszyscy będą go wyłączać podczas tworzenia nowych stron i kontroli (i jest to domyślnie prawdą). Czy możliwe jest jakoś egzekwowanie tej zasady?Trwale wyłącz AutoEventWireup

Mam nadzieję, że rozwiążę to w podobny sposób, jak zrobiłem to z ViewState - ustawienie programowo na EnableViewState na stronie podstawowej, które dziedziczą wszystkie nowe strony. Ale wydaje się, że nie ma odpowiednika dla AutoEventWireup.

Odpowiedz

3

Zastąp 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

Z dokumentacji: „Ta właściwość obsługuje infrastrukturę programu .NET Framework i nie jest przeznaczony do użycia bezpośrednio w kodzie.” Czy możesz wyjaśnić, co robisz? :) – IrishChieftain

+0

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

+1

Doskonale! Właśnie tego szukałem. Thanx – loodakrawa

0

Utwórz własny zestaw elementów sterujących dla każdego z tych pudełek, dla których chcesz wyłączyć te właściwości. Następnie ustaw dwie kontrolki w odziedziczonej wersji do odczytu.

Powiązane problemy