2014-12-04 3 views
0

내 사이트에서 사용하는 파일 핸들러가 여러 개 있으며 코드를 반복적으로 사용했습니다. 정돈하기위한 노력의 일환으로 나는 그들이 모두 상속 할 수있는 공통 기본 클래스 생성 : 내 핸들러의내 메서드가 호출되지 않는 이유를 모르겠다

Public MustInherit Class HandlerBase 
Implements System.Web.IHttpHandler, System.Web.SessionState.IRequiresSessionState 

Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable 
    Get 
     Return False 
    End Get 
End Property 

Public Overridable Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest 
     RequestHandler(context) 
End Sub 

Protected Overridable Sub RequestHandler(ByVal context As HttpContext) 
    Select Case context.Request.HttpMethod 
     Case "GET" 
      GetFile(context) 
     Case "POST" 
      UploadFile(context) 
     Case "DELETE" 
      DeleteFile(context) 
     Case Else 
      context.Response.ClearHeaders() 
      context.Response.StatusCode = 405 
    End Select 
End Sub 

Protected MustOverride Sub GetFile(ByVal context As HttpContext) 
Protected MustOverride Sub UploadFile(ByVal context As HttpContext) 
Protected MustOverride Sub DeleteFile(ByVal context As HttpContext) 

end class 

두 개의 기본 클래스를 상속 한 후 완벽하게 작동을하지만, 하나는 작동하지 않는 것 같습니다.

Protected Overrides Sub RequestHandler(ByVal context As HttpContext) 
    Select Case context.Request.HttpMethod 
     Case "GET" 
      GetFile(context) 
     Case Else 
      context.Response.ClearHeaders() 
      context.Response.StatusCode = 405 
    End Select 
End Sub 

내가 핸들러를 액세스하고이 ProcessRequest베이스에 호출되지도 RequestHandler를

답변

0

이이 피들러의 요청 검사 후 작은 오타했다 찾았 :

을 유일한 차이점은이 핸들러보다 우선 RequestHandler를하다
Protected Overrides Sub DeleteFile(ByVal context As HttpContext 
    Throw New NotImplementedException() 
End Sub 

매개 변수에 닫는 대괄호가 없습니다. 이것을 막기 위해 미심쩍은 표를 던지십시오.

관련 문제