2012-01-23 4 views
0

Page에서 상속받은 _Default 클래스 내에서 Page_PreInit 함수를 재정의하려고합니다. 여기 Page_PreInit를 재정의 할 때 컴파일러 오류가 발생했습니다.

'_Default.Page_PreInit(object, System.EventArgs)': no suitable method found to override

내 코드입니다 : 내가 컴파일 할 때, 나는 다음과 같은 오류가 발생합니다

public partial class _Default : Page 
{ 
    protected override void Page_PreInit(object sender, EventArgs e) 
    { 
     // Todo: 
     // The _Default class overrides the Page_PreInit method and sets the value 
     // of the MasterPageFile property to the current value in the 
     // selectedLayout session variable. 

     MasterPageFile = Master.Session["selectedLayout"]; 
    } 

    ... 
} 

답변

5

Page 클래스는 PreInit라는 공개 이벤트 및 OnPreInit라는 보호 된 가상 메서드가 (선언하는 방금 PreInit 이벤트가 발생합니다. 따라서 두 가지 옵션이 있습니다.

옵션 1 (권장) : 오버라이드 OnPreInit : 페이지가 평소처럼 PreInit 이벤트를 발생 너무

protected override void OnPreInit(EventArgs e) 
{ 
    // Set the master page here... 

    base.OnPreInit(e); 
} 

전화 base.OnPreInit(e).

옵션 2 :Page_PreInit이라는 메서드를 만듭니다. @Page 지시문이나 Web.config에서 AutoEventWireupFalse으로 설정하지 않는 한 ASP.NET은이 메서드를 PreInit 이벤트에 자동으로 바인딩합니다. 이 옵션을 선택하면

private void Page_PreInit(object sender, EventArgs e) 
{ 
    // Set the master page here... 
} 

, base.OnPreInit를 호출하지 않는, 그렇지 않으면 당신은 무한 재귀와 함께 종료됩니다.

+0

오 그래, 고마워! 여전히 "개체 참조가 개체의 인스턴스로 설정되지 않았습니다."오류 여기 : MasterPageFile = Master.Session [ "selectedLayout"]; – shenn

+0

'Master.Session' 대신'this.Session'을 시도하십시오. –

+0

this.session이 나타납니다 : 표현식 유형 'method group'에 []을 (를) 적용 할 수 없습니다 – shenn

관련 문제